繁体   English   中英

如何使用for循环将二进制转换为十进制?

[英]How to convert binary to decimal using a for loop?

4 天前开始学习 Python 时,我不太明白自己做错了什么。 我想使用 for 循环将二进制数转换为十进制数。

def binary_to_decimal(number):
    i, integer = 0, 0
    size = list(number)
    for value in size:
        integer = int(size[i]) * pow(2, i)
        i += 1
    print(f"the decimal representation is {integer}")
def binary_to_decimal("111")

我得到的输出是 3 而不是 4。

您需要使用 += 而不是 = 来聚合变量整数

def binary_to_decimal(number):
    i, integer = 0, 0
    size = list(number)
    for value in size:
        integer += int(size[i]) * pow(2, len(size)-1-i)
        i += 1
    print(f"the decimal representation is {integer}")


>>> binary_to_decimal("111")
the decimal representation is 7
>>> bin(7)
'0b111'

暂无
暂无

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

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