【发布时间】:2018-07-08 19:03:17
【问题描述】:
我使用的是巨大的二进制数,它们有 1024 位数字,有时此代码运行良好,但有时不行。我认为这很奇怪。 这是我用来将二进制转换为十进制的代码
def binToDec(d):
z1 = (Random binary number)
z = z1[:d]
n = int(z,2)
num=float(n)
return num
当代码失败时,他们会写信给我
n = int(z,2)
ValueError: invalid literal for int() with base 2: ''
有人可以帮忙吗?
【问题讨论】:
-
您能否提供一个失败的数字示例?
-
@jordanm(和 Vitor)
int('',2)(或任何其他基数)会引发值错误。我进行了编辑以使错误消息更清晰。 -
d曾经是0吗?z1可以是空字符串吗? -
请编写一个简短的完整程序来演示错误。就目前而言,我们看不到您如何生成
d或z1。请参阅minimal reproducible example 了解更多信息。 -
感谢所有 cmets 和答案。它有很大帮助。出现问题是因为没有数字可以转换为二进制,错误消息在这里说,但我以前不明白:ValueError: invalid literal for int() with base 2: ''