天天看點

python二進制轉十進制代碼_代碼将二進制轉換為十進制

我寫這段代碼是為了把二進制轉換成十進制,這不是最好的代碼,因為我是初學者。代碼如下:def bin_dec(a):

binary_list = list(str(a))

binary_list.reverse()

g = 1

double_list = [1]

for i in binary_list:

g = g * 2

double_list.append(g)

double_list.pop()

l = 0

ans = []

while l < len(binary_list):

g = binary_list[l]

if g == "1":

k = double_list[l]

ans.append(k)

l = l + 1

return "Decimal Value : %r" % sum(ans)

如果列印bin_dec(01101)output=“0”,則得到“0”,但如果執行此列印bin_dec(1101),則輸出為“13”

代碼運作得很好,但問題是當二進制數以0開頭時,如“00110”或“01010”,Python會立即将其更改為八進制數,進而導緻代碼無法輸出“0”。我曾嘗試用oct()函數更改變量“a”,但它也會更改不以0開頭的二進制數。他們唯一可行的方法是使用raw_input類似

a = raw_input("type Binary Number : ")但我不想那樣做。我希望有人能幫我。我也不想使用任何python函數将二進制數轉換為十進制數。謝謝。在