1.基础位运算
**&(按位与):**只要有0就是0
|(按位或):只要有1就是1
**^(按位异或):**相同为0,相异为1 /不进位相加
~(按位取反):0变1,1变0
<< :右移
>> :左移
2.例题
2.1确定一个数的二进制第x位是1还是0(数的最后一位为0位)
(n>>x)&1
2.2将一个数的二进制表示的第x位修改成1
n |=(1<<x)
2.3将一个数的二进制表示的第x位修改成0
n &=(~(1<<x))
2.4提取一个数二进制最右侧的1
n & (-n)
给一个数取反相当于~再加1
2.5干掉一个数二进制最右侧的1
n & (n-1)
3.异或运算律
1.a^0=a;
2.a^a=0;
3.a^b^c=a^(b^c)