Python 位运算符有
1 按位与(&)
2 按位或(|)
3?按位异或(^)
4 按位取反(~)
5 左位移(<<)
6 右位移(>>)
运算符 | 描述 |
---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | | | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | ^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | ~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x?类似于?-x-1 | << | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0,相当于乘于2的n次方 | >> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数,相当于除以2的n次方 |
按位与(&)
a = 11 # 11的二级制为1011
b = 13 # 13的二进制为1101
c = a & b # &是只有2着都应都为1的时候才为1否为为0,所以应该是1001
print(c) # 打印结果为 9
print(int("1001", 2)) # 二进制转10进制打印验证结果为 9
? 按位或(|)
a = 11 # 11的二级制为1011
b = 13 # 13的二进制为1101
c = a | b # |是只要有1个为1的时候为1,所以应该是1111
print(c) # 打印结果为 15
print(int("1111", 2)) # 二进制转10进制打印验证结果为 15
按位异或(^)
a = 11 # 11的二级制为1011
b = 13 # 13的二进制为1101
c = a ^ b # 当两对应的二进位相异时,结果为1,所以应该是0110
print(c) # 打印结果为 6
print(int("0110", 2)) # 二进制转10进制打印验证结果为 6
?左移与右移
a = 2
print(a << 3) # 相当于2乘于2的3次方
b = 16
print(b >> 3) # 相当于16除以2的3次方
|