& :有0就是0
| :有1就是1
^ : 相同为0,相异为1(无进位相加)
1.给一个数n,确定它的二进制表示中的第x位是0还是1
(n>>x) & 1
2.将一个数n的二进制位表示的第x位修改为1
n = n | ( 1<<x)
3.将一个数n的二进制位表示的第x位修改成0
n = n & (~(1<<x))
4. 提取一个数n二进制表示中最右侧的1(lowbit)
n & -n
说明:-n将最右侧的1,左边区域全部变成相反
5. 干掉一个数n二进制表示中最右侧的1
n & (n-1)
说明:n-1 将最右侧的1,右边区域(包括1)全部变成相反
6. 异或(^)运算的运算律
- a^ 0 = a
- a^ a = 0
- a ^ b ^ c = a^ ( b^ c)