前言
唤我沈七就好啦。
&
按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
|
按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
^
按位异或 若参加运算的两个二进制位值相同则为0,否则为1
~
取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1
<<
左移 用来将一个数的各二进制位全部左移N位,右补0
>>
右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数, 高位补0
应用
1.判断奇偶
只需要判断二进制位末尾数字
如果是 1 的话,代表是奇数,如果是 0 则代表是偶数,
if(n & 1 == 1){ // n 是个奇数。}
2.交换两个数
x = x ^ y // (1)
y = x ^ y // (2)
x = x ^ y // (3)
3.求n的第k位数字:
n >> k & 1
4.返回n的最后一位1:
lowbit(n) = n & -n