繁体   English   中英

试图将二进制字符串转换为十进制,计算不正确,我也不明白为什么

[英]Trying to convert a binary string into decimal, it is not calculating correctly and I do not understand why

我正在尝试从用户那里获取一个二进制字符串,并将其转换为十进制。 但是,当我这样做时,我没有得到正确的总数,我得到的数字大于其十进制转换的数字,并且由于某些原因,我不明白为什么...谢谢。

我试图改变变量

binary_str = input("Please input the binary string: ")

Power = 7
Total = 0

for char in binary_str:
    product = int(char) * 2**Power
    Total += product
    set_power = Power - 1


print(Total)

当数字应为200时,输出为512

您无需执行此操作, int会为您执行此操作,请尝试以下操作:

binary_str = input("Please input the binary string: ")
t = int(binary_str, 2)

t将是您的预期结果。

以下内容将为您服务:

binary_str = input("Please input the binary string: ")
power = len(binary_str)-1
total = 0

for char in binary_str:
    total += int(char) * 2**power
    power -=1
print(total)

在我们的解决方案set_power无关与Power和值Power在每次迭代中不会改变。 因此,对于每个数字,乘以每个数字的值将为2**7 如果要修复它,请考虑Power-=1如所示代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM