num1 = bin(input())
num2 = bin(input())
answer = int(num1 ,2) + int(num2,2)
print (bin(answer)) [2:]
input ("press enter to finish")
我该怎么做才能放入 2 个二进制数并将它们相加,它只允许我放入一个,然后它只给我第一个的二进制表示。
我真的需要知道如何做到这一点。
num1 = bin(input())
num2 = bin(input())
answer = int(num1 ,2) + int(num2,2)
print (bin(answer)) [2:]
input ("press enter to finish")
我该怎么做才能放入 2 个二进制数并将它们相加,它只允许我放入一个,然后它只给我第一个的二进制表示。
我真的需要知道如何做到这一点。
不太确定这是否是您要查找的内容:
#! /usr/bin/python3.2
print (bin(int(input('>> '), 2) + int(input('>> '), 2))[2:])
示例用法:
>> 100
>> 101
1001
此解决方案假定您使用的是 Python 2.x。目前尚不清楚是否是这种情况......
bin()
不正确。仅在将整数转换为二进制字符串时才需要它。raw_input()
而不是input()
. 后者将尝试自动将输入转换为您不想要的数字。所以:
num1 = int(raw_input(), 2)
num2 = int(raw_input(), 2)
answer = num1 + num2
print bin(answer)[2:]
猜猜我会做这样的事情:
from __future__ import print_function
import sys
if sys.version_info[0]==2: input=raw_input
def get_bin(txt):
while True:
s=input(txt)
try:
return int(s, 2)
except ValueError:
print('"{}" is not a valid binary number'.format(s))
li=[]
for i in range(1,3):
li.append(get_bin('Enter bin number {} >>> '.format(i)))
ans=sum(li)
w=len(bin(ans))
for i, e in enumerate(li):
op='+' if i else ' '
print('{}{:{w}b}'.format(op,e,w=w))
print(' ','='*w)
print(' {:{w}b}'.format(ans,w=w))
在 Python 2 或 3 上,例如:
Enter bin number 1 >>> 111111
Enter bin number 2 >>> 11
111111
+ 11
=========
1000010