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;

输出的答案:

相关推荐
_何同学25 分钟前
Ollama 安装 DeepSeek 与 Spring Boot 集成指南
java·spring boot·后端·ai
剪一朵云爱着1 小时前
力扣面试题 17.05. 字母与数字
算法·leetcode
Code季风2 小时前
跨语言RPC:使用Java客户端调用Go服务端的HTTP-RPC服务
java·网络协议·http·rpc·golang
盖世英雄酱581362 小时前
时间设置的是23点59分59秒,数据库却存的是第二天00:00:00
java·数据库·后端
code喵喵2 小时前
八种数据结构简介
数据结构·算法·推荐算法
C语言小火车2 小时前
【C语言】银行账户管理系统丨源码+解析
c语言·c++·算法·课程设计
wen__xvn3 小时前
九日集训第三天
数据结构·算法·leetcode
dying_man3 小时前
LeetCode--33.搜索旋转排序数组
算法·leetcode
clmm1233 小时前
Java动态生成Nginx服务配置
java·开发语言·nginx
东方芷兰3 小时前
Leetcode 刷题记录 17 —— 堆
java·c++·b树·算法·leetcode·职场和发展