C语言——交换两个int变量的值,不能使用第三个变量。

交换两个int变量的值,不能使用第三个变量。即 a=3,b=5,交换之后a=5,b=3;

cpp 复制代码
#include<stdio.h>
int main()
{
    int a=3;
    int b=5;
    printf("a=%d b=%d\n",a,b);
    a=a^b;
    b=a^b;
    a=a^b;
    printf("a=%d b=%d\n",a,b);
}

"^"------按位异或操作符,这里的按位的位指的是操作数二进制的位,相同为0相异为1.

3的二进制位为:0000 0000 0000 00011

5的二进制位为:0000 0000 0000 00101

注:

1、任何数按位异或自己本身都为0

cpp 复制代码
int a=3;
a^a=a;

2、0与任何数按位异或都为异或的那个数

cpp 复制代码
int a=3;
0^a=a;

输出的答案:

相关推荐
zzz_23682 分钟前
【Java实习面试算法冲刺】哈希!
java·算法·面试
大耳朵糊涂3 分钟前
找前/后驱节点
算法
孤狼warrior8 分钟前
从冒泡到传送带流水线:一个3D沉浸式算法靶场,让思想的伟力改变世界
python·算法·typescript
带刺的坐椅12 分钟前
ReActAgent 使用指南:构建会思考、能行动的 AI Agent
java·ai·llm·solon·loop·react-agent
bu_shuo18 分钟前
计算机二级学习-查找和排序
学习·算法·排序算法
漂亮的摩托27 分钟前
如何编写一个SpringBoot项目告警推送的Starter
java·spring boot·后端
盖伦暴打诺手33 分钟前
类比推理知识点
java
ch.ju34 分钟前
Java程序设计(第3版)第四章——类加载
java·开发语言
河阿里35 分钟前
SLF4J深度指南(Java):从原理到 Spring 项目实战
java·开发语言·spring
小沈同学呀39 分钟前
飞书机器人+Spring AI Function Calling实战-扔掉MCP Client让LLM直接操控工具
java·开发语言·functioncalling·spring ai·飞书机器人