性质
-
异或运算的结构等于无进位相加: 10010, 01101异或结果为 11111
- 若a^b=c, 则a=b^c, c=a^b
- 异或运算满足交换律和结合律
- 0^n = n, n^n=0, 利用这个性质可以实现两数的交换
a = a^b b = a^b a = a^b
注意,进行上面算法的时候a和b必须是两个不同的空间,但是和值没关系,如 ```java // 满足要求 int a = 10; int b = 10;
// 若i != j,则不满足要求 // 这样运行回导致arr[i] = arr[j] = 0 arr[i] = arr[i] ^ arr[j] arr[j] = arr[i] ^ arr[j] arr[i] = arr[i] ^ arr[j] ```