位运算符概括
运算符 | 描述 | 运算规则 |
---|---|---|
& | 与运算 | 当都为1时为1,否则为0 |
| | 或运算 | 当都为0时为0,否则为1 |
^ | 异或运算 | 当两个为相同时为0,否则为1 |
~ | 取反 | 跟原来的相反,1变0,0变1 |
<< | 左移 | 二进制全部位向左移动指定的位数,低位补0 |
>> | 右移 | 二进制全部位向右移动指定的位数,高位补0 |
例子
现有两个值 a=10,b=20;
二进制为:a=0000 1010 ,b=0001 0100;
a & b = 0000 0000 # 0
a | b = 0001 1110 # 30
a ^ b = 0001 1110 # 30
~a = 1111 0101 #-11
a << 2 = 0010 1000 # 40
a >> 2 = 0000 0010 # 2