Python 3 – 位运算符示例
下列位运算符可用于Python语言 –
运算符 | 描述 | 例子 |
---|---|---|
& 二进制与 |
如果位于两个操作数中均存在位则将其复制到结果中 | (a & b)(意为00001100) |
| 二进制或 |
如果两个操作数中任意一个存在位,则将其复制 | (a | b) = 61(意为00111101) |
^ 二进制异或 |
如果存在于一个操作数中,但不存在于另一个操作数中,则复制其位。 | (a ^ b) = 49(意为00110001) |
~ 二进制取反 |
它是一元的,并且具有’翻转’位的效果。 | (~a) = -61(由于带符号的二进制数,其补码形式为11000011) |
<< 二进制左移 |
左侧操作数的值向左移动由右侧操作数指定的位数。 | a << 2 = 240(意为11110000) |
>> 二进制右移 |
左侧操作数的值向右移动由右侧操作数指定的位数。 | a >> 2 = 15(意为00001111) |
示例
#!/usr/bin/python3
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
print ('a=',a,':',bin(a),'b=',b,':',bin(b))
c = 0
c = a & b; # 12 = 0000 1100
print ("AND的结果是", c,':',bin(c))
c = a | b; # 61 = 0011 1101
print ("OR的结果是", c,':',bin(c))
c = a ^ b; # 49 = 0011 0001
print ("EXOR的结果是", c,':',bin(c))
c = ~a; # -61 = 1100 0011
print ("COMPLEMENT的结果是", c,':',bin(c))
c = a << 2; # 240 = 1111 0000
print ("LEFT SHIFT的结果是", c,':',bin(c))
c = a >> 2; # 15 = 0000 1111
print ("RIGHT SHIFT的结果是", c,':',bin(c))
输出
运行以上程序会产生以下结果 –
a = 60 : 0b111100 b = 13 : 0b1101
AND的结果是12 : 0b1100
OR的结果是61 : 0b111101
EXOR的结果是49 : 0b110001
COMPLEMENT的结果是-61 : -0b111101
LEFT SHIFT的结果是240 : 0b11110000
RIGHT SHIFT的结果是15 : 0b111