异或运算实现值的交换
#include <stdio.h>
/*
① 执行前两个赋值语句:“a=a∧b;”和“b=b∧a;”相当于b=b∧(a∧b)。
② 再执行第三个赋值语句: a=a∧b。由于a的值等于(a∧b),b的值等于(b∧a∧b),
因此,相当于a=a∧b∧b∧a∧b,即a的值等于a∧a∧b∧b∧b,等于b。
a^a=000 b^b^b=b b^(000)2 = b
*/
main()
{
int a=3;
int b = 4;
a=a^b;
printf("a0=%d\n",a);
b=b^a;
printf("b=%d\n",b);
a=a^b;
printf("a1=%d\n",a);
// printf("a=%d b=%d",a,b);
}
语言位运算符:与、或、异或、取反、左移与右移详细介绍
https://www.cnblogs.com/sylar5/p/10613438.html