我不知道如何添加两个数字

时间:2013-11-06 17:59:02

标签: python

num1 = bin(input())
num2 = bin(input())

answer = int(num1 ,2)  + int(num2,2)

print (bin(answer)) [2:]

input ("press enter to finish")

我该如何操作,这样我就可以输入2个二进制数并将它们加起来,它只允许我输入一个,然后它只给我一个第二个的二进制表示。

我真的需要知道如何做到这一点。

3 个答案:

答案 0 :(得分:0)

不太确定这是否是您要找的:

#! /usr/bin/python3.2

print (bin(int(input('>> '), 2) + int(input('>> '), 2))[2:])

使用示例:

>> 100
>> 101
1001

答案 1 :(得分:0)

此解决方案假设您使用的是Python 2.x.目前尚不清楚是否属于这种情况......

  • 您似乎错误地使用了bin()。在将整数转换为二进制字符串时,您只需要这样做。
  • 您想使用raw_input()代替input()。后者将尝试自动将输入转换为数字,这是您不想要的。

所以:

num1 = int(raw_input(), 2)
num2 = int(raw_input(), 2)

answer = num1 + num2

print bin(answer)[2:]

答案 2 :(得分:0)

猜猜我会做这样的事情:

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