运算技巧
a&(a-1) 除去a二进制中最后一位1
1
2
a XOR 0 = a a与0的异或还是a
a XOR a = 0 a与a的异或为0
a XOR b XOR a = b 可用于去重
1
2
3
LeetCode : 136. Single Number 单一数字
一、与
有0出0;全1出1
A B F=AB
0 0 0
0 1 0
1 0 0
1 1 1
二、或
有1出1;全0出0
A B F=A+B
0 0 0
0 1 1
1 0 1
1 1 1
三、非
用^代表事件相反
有1出0;有0出1。
A F = ^A
0 1
1 0
四、与非
与操作相反
A B F = ^(A·B)
0 0 1
0 1 1
1 0 1
1 1 0
五、或非
或操作相反
A B F = ^(A+B)
0 0 1
0 1 0
1 0 0
1