在 python 中从用户那里获取二进制输入以进行按位运算

Taking a binary input from the user in python for bitwise operations

N,M=raw_input().split(' ')
N=int(N,2)
M=int(M,2)
print N|M

代码将初始输入转换为二进制,然后应用按位或。然而,我需要的是一种以二进制本身接收初始输入的方法。

如果输入是

111 101

给出的输出是7,我想要的输出是111|101也就是111.

只需将输出格式化回二进制即可:

print format(N|M, 'b')

这使用 format() function to produce a binary string again; the 'b' format 生成 base-2 二进制输出:

>>> format(7, 'b')
'111'

如果您需要保留原始输入 与输入的完全一样 ,则将 int() 调用的输出分配给新变量:

binary1, binary2 = raw_input().split(' ')
N = int(binary1, 2)
M = int(binary2, 2)
print '{}|{} makes {:b}'.format(binary1, binary2, N|M)

这里我使用了str.format() method来产生一个输出字符串;可以在一个简单的模板框架内使用相同的格式化指令; N|M 的输出被插入到最后一个 {} 占位符中,它将值格式化为二进制表示形式。