-2
print ("Input Binary Number")

num1 = bin(input())

print( "Now another one")

num2 = bin(input())

answer = ( num1 + num1)

print ("adding them together will give you" , answer)

input ("press enter to finish")

我无法输入二进制数

4

3 回答 3

1

您可能需要先将输入转换为 int,然后再转换为 bin

num1 = bin(int(input()))

你也可能是说:

answer = (num1 + num2)
于 2013-11-12T18:39:25.553 回答
1

让我们从最基本的输入开始,直到最终结果。

首先,input()返回一个字符串,因此1011101将是"1011101".

现在我们要将字符串存储为 int,所以我们使用int(input()).

不幸的是,这会读取以 10 为底的字符串,而我们想要以 2 为底读取,所以我们使用int(input(), 2).

我们不使用 bin() 函数 let,因为该函数将 int 转换回字符串,并且“+”操作进行连接,而不是加法。

现在该值已正确存储为 int,因此我们可以正常进行加法:answer = num1 + num2

存储总和后,我们希望将结果保存为二进制字符串。为此,我们编写answerString = bin(answer)或者answerString = bin(answer)[2:]如果我们想删除 bin 附加的前导“0b”。

现在我们可以打印 answerString 来显示结果。

我写的一个演示:

num1 = int(input(), 2)
num2 = int(input(), 2)
answer = num1 + num2
answerString = bin(answer)[2:]
print(answerString)

输入:

1001001
1010100

输出:

10011101
于 2013-11-12T19:21:26.453 回答
0

bin将整数转换为字符串,给出数字的二进制表示。您需要做的是将您的输入作为字符串并使用int. int接受作为基础的第二个参数 - 在本例中为 2。

类似的东西num1 = int(input(), 2)应该可以解决问题。

于 2013-11-12T18:45:37.200 回答