位运算总结
1. 基础位运算
<< : 左移 &:有0就是0
>>:右移 | :有1就是1
~ :按位取反 ^(异或): 相同为0,相异为1(无进制相加)
2. 给定一个数n,判断它的二进制表示中的第x位是0还是1?
(n>>x)&1----------->0->0 ,1->1
3. 将一个数n的二进制表示的第x位修改成1
n|=(1<<x)
4. 将一个数n的二进制表示的第x位修改为0
n &(~(1<<x))
5. 提取一个数n二进制表示中最右侧的1
n&(-n)
6. 干掉一个数(n)二进制表示中最右侧的1
n&(n-1)
7.异或的运算律
满足结合律,分配律
a^a=0 ,a^0=0.