python中的按位运算

时间:2017-07-01 13:18:17

标签: python python-3.x bit-manipulation

有一种可用于按位操作的解决方案。但是,它以二进制数转换整数,然后执行按位运算。我已经有二进制格式的数字了。如何对这些数字执行按位运算? 防爆。 x = 10101,y = 11001 我希望z = x或y为11101。 任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以将小数10101转换为二进制10101,方法是将其转换为字符串,然后转换为int(.., 2)(2 => base 2):

>>> str(x)
'10101'
>>> int(str(x), 2)
21

您需要的操作(| =>按位或):

>>> int(str(x), 2) | int(str(y), 2)
29

然后,使用format(或str.format格式字符串b - >表示二进制表示)和int将其转换为十进制:

>>> format(int(str(x), 2) | int(str(y), 2), 'b')
'11101'
>>> int(format(int(str(x), 2) | int(str(y), 2), 'b'))  # back to integer
11101