使用波纹管算法

时间:2017-10-28 08:26:45

标签: python-3.x

任何人都可以请教我如何使用此算法编写程序? 要将二进制整数转换为十进制,请从左侧开始。获取当前总数,将其乘以2并添加当前数字。继续,直到没有剩余数字。

首先需要输入二进制数字作为字符串,然后逐个选择二进制数字

    num=input("Enter the binary integer Number: ")
    num=str(num)
    decimal=''
    rem=0
    i=0
    i=int(i)

    dig=num[i]
    dig=int(dig)
    rem=(rem*2)+dig
    i=i+1

    dig=num[i]
    dig=int(dig)
    rem=(rem*2)+dig
    i=i+1

    dig=num[i]
    dig=int(dig)
    rem=(rem*2)+dig
    i=i+1

   dig=num[i]
   dig=int(dig)
   rem=(rem*2)+dig
   i=i+1

   decimal=int(rem)
   print(decimal)

此代码仅计算4位二进制数。如何在此代码中添加while循环?

2 个答案:

答案 0 :(得分:1)

是的,你可以把它放在循环中:

binary = input("Enter the binary integer Number: ")
decimal = 0
for dig in binary:
    decimal = decimal*2 + int(dig)

print(decimal)

请注意,在Python 3中,input已经返回了字符串类型值,因此您不需要使用str()进行转换。

答案 1 :(得分:0)

您可以使用int()功能:

binary_string = input('Please input a binary number: ')
print(int(binary_string, 2))

单线,只是因为它是可能的:

print(int(input('Please input a binary number: '), 2))

但如果你真的想用循环来做这件事,你可以这样做:

binary_string = input('Please input a binary number: ')
result = 0
multiplier = 1
for digit in binary_string[::-1]:
    result += int(digit) * multiplier
    multiplier *= 2
print(result)