python数的按位翻转_Python按位运算符示例

时间:2025-04-22 07:22:02

按位运算符执行逐位运算。假设变量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

b) = 61 结果表示为 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

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

相关文章