【发布时间】:2017-07-01 21:28:36
【问题描述】:
有一种可用于执行按位运算的解决方案。但是,它将整数转换为二进制数,然后进行按位运算。我已经有了二进制格式的数字。如何对这些数字执行按位运算? 前任。 x = 10101, y = 11001 我希望 z = x 或 y 为 11101。 非常感谢任何帮助。
【问题讨论】:
标签: python python-3.x bit-manipulation
有一种可用于执行按位运算的解决方案。但是,它将整数转换为二进制数,然后进行按位运算。我已经有了二进制格式的数字。如何对这些数字执行按位运算? 前任。 x = 10101, y = 11001 我希望 z = x 或 y 为 11101。 非常感谢任何帮助。
【问题讨论】:
标签: python python-3.x bit-manipulation
您可以将十进制 10101 转换为二进制 10101,方法是将其转换为字符串,然后再转换为 int(.., 2)(2 => 基数 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
【讨论】: