位运算
位运算符,对二进制数进行移位操作
<< 左移:末尾补零,原数乘2
>> 右移:高位补零,原数除以2
<<=:左移并赋值,>>=:右移并赋值。比如 x <<= 1 就是对 x 左移 1 位后将结果再赋给 x。
| 或:有1就是1,1|1=1,1|0=1,0|0=0
& 与:有0就是0,1&1=1,1&0=0,0&0=0
^ 异或:1^1=0,1^0=1,0^0=1(两个相同为0,不同为1)
编程常用:
1. 判断奇偶:如果x&1等于0即为偶数,反之
2. 第k+1位赋值为1:x|(1<<k)
3. 第k+1位取反:x^(1<<k)
4. 判断x第k+1位是否为1:x(>>k)&1
5. 与2运算:eg x<<3即x乘以2的三次方