几种位运算的含义:
| | 按位或运算 0010 | 1000 = 1010 |
& | 按位与运算 0010 & 1000 = 0000 |
^ | 按位异或运算 |
>> | 右移一位,高位原本是1就补1,否则补0; 即 10 >> 1 => v = a / (2 ^ b)二分法取中间值时可以用 |
<< | 左移一位,低位补零,高位移除;即 10<<1 =>a * (2 ^ b) |
~ | 取反, 0变1, 1变0 |
举例子说明:(位运算前先把数字转为二进制,看上去比较直观)
|或运算: 1跟0 或 返回1,0跟0 或 返回0,1跟1 或 返回1
&与运算: 1跟1 与 返回1,其他都是返回0
^异或运算:相同二进制位 异或 返回0,不同二进制位 <