1.给定一个数x确定其二进制表示的第i位是0还是1:
(x>>i)&1
2.将一个数x其二进制表示的第i位修改成1:
x|=(1<<i)
3.将一个数x其二进制表示的第i位修改成0:
x&=(~(1<<i))
4.取出一个数x二进制中最右侧的1:
lowbit:
x&(-x);
5.干掉一个数x二进制中最右侧的1:
x=x&(x-1)
6.^:
a^0=a
a^a=0
a^b^c=a^(b^c)
大家可以通过学习这些常见的位运算去刷位运算的题目了!!!