我已经创建了一个将8位二进制转换为十进制的基本程序,但是当我运行程序时,它会向后工作,例如如果我输入二进制数'00000001'
,程序将返回128
。这是我的代码:
binaryvalue=input("Please enter your 8 bit binary number.")
binaryvalue=str(binaryvalue)
if len(binaryvalue) <= 8:
print("Your number is accurate.")
value_index=0
total=0
print("Your number is valid.")
for i in range(len(binaryvalue)):
total = total + (int(binaryvalue[value_index])) * 1 * (2**(value_index))
value_index = value_index+1
print("Your decimal number is: "+str(total))
答案 0 :(得分:1)
所以,正如jonrsharpe和Moe所提到的
反转输入:
binaryvalue = str(binaryvalue)[::-1]
或者,您可以将偏移量放在您的力量中:
total = total + (int(binaryvalue[value_index])) * 1 * (2**(len(binaryvalue)-value_index-1))
两者基本上都在做同样的事情。