阮一峰文章
https://en.wikipedia.org/wiki/Bitwise_operation#Mathematical_equivalents
https://en.wikipedia.org/wiki/Exclusive_or
And 与: 同真则真,都真,全真,all
Or 或: 有真则真,有真,any
Xor(Exclusive or): 不同则真,独真,only one
And not(&^): 前独真
定律:
A ^ A = 0 // 归0,可用于快速判断两个数是否相同!!
A ^ 0 = A // 恒等
1 ^ A = ^A // 反转,与1异或可将指定位反转
A ^ (^A) = 1 // 归1
1 ^ 0 = 1
A ^ B = B ^ A // 交换律
A ^ (B^C) = A^B ^C // 结合律
Y = A&(^B) | ((^A)&B)
经典面试题: 找缺失数,如n-1个 1~n中的不同数,找到缺失的数(或找重复数)
A1^A2^...^An-1^1^2^...^n
磁盘恢复(巧妙!!!):
A, B, 并将 A^B 存入C,则可同步C从A恢复B或从B恢复A
C^A=A^B^A=A^A^B=0^B=B
N个数字中,只有1个数只出现1次,其它数字都出现2次
A1^A2^...^An=Ax