异或性质
一个值与自身的异或总是为 0
x ^ x = 0
一个值与 0 异或等于本身
x ^ 0 = x
可交换性
a ^ b = b ^ a
可结合性
(a ^ b) ^ c = a ^ (b ^ c)
根据以上的四个特点
我们可以推导:
a ^ b = c
等式两边都增加对b的异或, 等价于
a ^ b ^ b = c ^ b
等式左边的 b^b=0, a^0=a, 所以有
a = c ^ b
最终相当于把 b 从等号左边转到等号右边来了
|=:两个二进制对应位都为0时,结果等于0,否则结果等于1;
&=:两个二进制的对应位都为1时,结果为1,否则结果等于0;
^=:两个二进制的对应位相同,结果为0,否则结果为1。