python中的位运算将数字看作二进制进行计算。
1. 规则
运算符 | 说明 | 描述 |
---|---|---|
& | 按位与运算符 | 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符 | 只要对应的二个二进位有一个为1时,结果位就为1 |
^ | 按位异或运算符 | 当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符 | 对数据的每个二进制位取反,即把1变为0,把0变为1 |
<< | 左移运算符 | 运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0 |
>> | 右移运算符 | 把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 |
2. 例子演示
m = 10 # 10 = 1010
n = 7 # 7 = 0111
k = -6 # -6 = - 0110 = 1010(补码表示,最高位的1是看不见的)
print(m & n) # 1010 & 0111 = 0010
print(m | n) # 1010 | 0111 = 1111
print(m ^ n) # 1010 ^ 0111 = 1101
# 说明:在取反时,正数变负数