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

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

如果输入是

111 101

给出的输出是 7。我想要的输出111|101111.

4

1 回答 1

2

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

print format(N|M, 'b')

这使用该format()函数再次生成二进制字符串;该'b'格式产生一个 base-2 二进制输出:

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

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

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

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

于 2015-04-10T18:28:41.310 回答