跳转至

位运算

符号 描述 运算规则
& 两个位都为1时,结果才为1
| 两个位都为0时,结果才为0
^ 异或 两个位相同为0,相异为1
~ 取反 0变1,1变0
<< 左移 各二进位全部左移若干位,高位丢弃,低位补0
>> 右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

位移 << >>

Text Only
1
2
3
4
5
按位左移:
0011 1100 << 1    ->    0111 1000

按位右移:
0011 1100 >> 2    ->    0000 1111

按位与 &

Text Only
0001 1000 & 0010 1010    ->    0000 1000

按位或 |

Text Only
0001 1000 | 0010 1010    ->    0011 1010

按位异或 ^

Text Only
0001 1000 ^ 0010 1010    ->    0011 0010

按位取反 ~

Text Only
~0001 1000    ->    1110 0111