按位与 &

两个数同样的二进制位都为1,才是1,否则是0
可以用来判断奇偶,末位是0表示偶数,末位是1表示奇数。

a & 1 为 1表示奇数,为0表示偶数

按位或 |

两个数同样的二进制位只要有一个为1,才是1,否则是0
想要把哪一位强行变1, 或这个位数对应的二进制数

我们只使用a|1把a的最后一位强行变成1,其实质意义是把原数加一

按位异或 ^

两个二进制数进行异或(^)运算,对应位相异,返回1,反之返回0.

一个数经过两次异或之后等于原数

左移运算 <<

左移运算a<<b的实质就是a×2b。

右移运算 >>

右移运算a>>b的实质就是a / 2b。

常用的操作

最低位清0

x & (x-1)