按位运算符执行逐位运算。假设变量a = 60
; 和变量b = 13
; 现在以二进制格式,它们将如下 -
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Python的内置函数bin()
可用于获取整数的二进制表示形式。
以下是Python语言支持位运算操作符 -
运算符 | 描述 | 示例 |
---|---|---|
& |
如果它存在于两个操作数中,则操作符复制位到结果中 | (a & b) 结果表示为 0000 1100 |
![]() |
如果它存在于任一操作数,则复制位。 | (a ![]() 0011 1101 |
^ |
二进制异或。如果它是一个操作数集合,但不是同时是两个操作数则将复制位。 | (a ^ b) = 49 (结果表示为 0011 0001 ) |
~ |
二进制补码,它是一元的,具有“翻转”的效果。 | (~a ) = -61 有符号的二进制数,表示为1100 0011 的补码形式。 |
<< |
二进制左移,左操作数的值由右操作数指定的位数左移。 | a << 2 = 240 (结果表示为 1111 0000 ) |
>> |
二进制右移,左操作数的值由右操作数指定的位数右移。 | a >> 2 = 15 (结果表示为0000 1111 ) |
实例
假设变量a
的值是60
,变量b
的值是13
,参考以下代码实现 -
#!/usr/bin/python3
#coding=utf-8
#save file : bitwise_operators_example.py
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 ("result of AND is ", c,':',bin(c))
c = a | b; # 61 = 0011 1101
print ("result of OR is ", c,':',bin(c))
c = a ^ b; # 49 = 0011 0001
print ("result of EXOR is ", c,':',bin(c))
c = ~a; # -61 = 1100 0011
print ("result of COMPLEMENT is ", c,':',bin(c))
c = a << 2; # 240 = 1111 0000
print ("result of LEFT SHIFT is ", c,':',bin(c))
c = a >> 2; # 15 = 0000 1111
print ("result of RIGHT SHIFT is ", c,':',bin(c))
将上面代码保存到文件: bitwise_operators_example.py 中,执行结果如下 -
F:\worksp\python>python bitwise_operators_example.py
a= 60 : 0b111100 b= 13 : 0b1101
result of AND is 12 : 0b1100
result of OR is 61 : 0b111101
result of EXOR is 49 : 0b110001
result of COMPLEMENT is -61 : -0b111101
result of LEFT SHIFT is 240 : 0b11110000
result of RIGHT SHIFT is 15 : 0b1111
上一篇:
Python基本运算符
下一篇:
Python决策