算法中的亦或 ^
1.亦或的性质
- 交换律
a^b = b^a
- 结合律
a^b^c=a^(b^c)=(a^b)^c
0^a=a
0与任何数亦或都是这个数a^a=0
2.典型应用:
2.1 交换两个数
a=a^b;
b=b^a;(b^a^b=b^b^a=a)
a=a^b;((a^b)^a=b)
2.2 落单的数
对于一个整型数组,里面有包含一个单独的数字和其余都是出现两次的数字(或则多次),找出这个单独的数据。对于这个整型数组(亦或运算有交互律和结合律),所以可以变换成所有相同的数在一起运算,全部得到0,然后0与那个单独的数据亦或也就得到了单独的数据。