不同为1相同为0
这就不讲 编码了
xor 可以将两个数交换
a = a^b;
b = a^b; // b = a ^ b = (a^b) ^ b = a
a = a^b; // a = a ^ b = (a^b) ^ a = b
运算后, a, b值互换
签到签到
1.数值交换;
2.奇偶判断:将一个数中的每一位按位逐一进行异或,结果为0,则有偶数个1,结果为1,则有奇数个1;
3.格雷码;
4.奇数分频。
可以实现置位或复位功能。
交换两个变量swap(),优势是不用增加临时变量
如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
可以用于比较运算,交换变量,变量置零,特定的位翻转,加密等。
1+0=1;
1+1or 0+0=0
异或可以实现按位取反
比如: 0011 0011 ^ 1111 1111 =1100 1100异或0xFF,正好是取反
1、交换两个数
2、使某个特定的位翻转
3、将变量清零
4、判断2个数是否相等