本博文源于C语言基础,在平常用交换数据的时候。我们更多的时候会使用中间变量作为交换介质。用异或进行交换就不用中间变量作为交换介质。但是仅仅适用于整数
1.题目再现&测试效果
用异或完成两个整数的数据交换
2. 思路解析
我们使用
a = a^b;
b = b^a;
a = a^b;
首先是a=a^b;
同理,设sum = a^b
当b=b^a,相当于
b = b^sum = b ^a ^b = a
最后一步
a = a^b=sum^b=a^b^a=b
3.完整源码
#include<stdio.h>
int main()
{
int a =2;
int b =3;
printf("\n%d,%d",a,b);
a = a^b;
b = b^a;
a = a^b;
printf("\n%d,%d",a,b);
return 0;
}