2017-10-28 83 views
0

任何人都可以請給我說明如何使用此算法編寫程序? 要將二進制整數轉換爲十進制,請從左側開始。把你現在的總數乘以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循環?

+0

請添加您的示例代碼。或者你到目前爲止嘗試過的。 –

+0

此代碼只計算8位二進制數(4位) 我可以使用while循環代碼嗎? –

回答

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) 
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()轉換。

相關問題