很久以前我開始研究這個問題,試圖寫我自己的二進制到十進制轉換函數。我實際上不知道如何將小數轉換爲二進制!我今天重新討論了它,並找出了它,這就是我想出來的。我不知道這是否是你所需要的,但在這裏它是:
def __degree(number):
power = 1
while number % (10**power) != number:
power += 1
return power
def __getDigits(number):
digits = []
degree = __degree(number)
for x in range(0, degree):
digits.append(int(((number % (10**(degree-x))) - (number % (10**(degree-x-1))))/(10**(degree-x-1))))
return digits
def binaryToDecimal(number):
list = __getDigits(number)
decimalValue = 0
for x in range(0, len(list)):
if (list[x] is 1):
decimalValue += 2**(len(list) - x - 1)
return decimalValue
此外,我還在學習Python的只是我自己,希望這可以幫助。第一個函數確定有多少個數字,第二個函數實際上算出它們並將它們返回到一個列表中,而第三個函數是您實際需要調用的唯一一個函數,它將計算十進制值。如果你的老師真的希望你寫自己的轉換器,這個工作,我沒有測試每個數字,但它似乎完美的工作!我相信你們都會找到我的錯誤!所以無論如何,我只是這樣稱呼它:
binaryNum = int(input("Enter a binary number: "))
print(binaryToDecimal(binaryNum))
這打印出正確的結果。乾杯!
檢查[這](https://開頭計算器。com/questions/35450560/how-to-use-python-to-convert-an-octal-to-a -id/47823029)#47823029。 Grace L. Samson的回答可能很有用 –