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