將十進位轉換為基數只是基數轉換問題之一。 在Python程式設計中,完成基礎轉換的方法主要有兩種:自定義編碼實現和庫函式呼叫
自定義編碼實現是指根據基轉換的數學原理,在 python 中編寫乙個函式式方法。
呼叫庫函式時,可以使用 Python 語言自帶的開箱即用函式,也可以使用第三方開發者提供的開箱即用函式。
十進位到二進位的數學原理
要使用自定義編碼實現十進位到二進位的轉換,必須首先了解基本轉換的數學原理。 本著專注於 Python 程式設計本身的原則,請參考十進位到二進位的數學原理:如何將十進位轉換為二進位。
2. 寫作**
實現思路如下:
使用引數自定義函式,並且對引數型別沒有限制。
有效判斷輸入引數是整數資料還是浮點資料,無效資料輸出錯誤資訊,返回空內容。
根據引數是整數資料還是浮點資料,單獨處理。
具體如下:
def decimal_to_binary(decimal):除錯:binary = ""
if isinstance(decimal, int):
while decimal > 0:
remainder = decimal % 2
binary = str(remainder) +binary
decimal //= 2
elif isinstance(decimal, float):
num1 = int(math.modf(decimal)[1])
num2 = math.modf(decimal)[0]
while num1 > 0:
rem1 = num1 % 2
binary = str(rem1) +binary
num1 //= 2
binary = binary + "."
while math.modf(num2)[0] != 0.0:
rema2 = num2 * 2
temp_num = int(math.modf(rema2)[1])
binary = binary + str(temp_num)
num2 = math.modf(num2 * 2)[0]
else:print("error!!!")
return
return "0b" + binary
if __name__ == '__main__':輸出結果如下:print(decimal_to_binary(12))
print(decimal_to_binary(12.625))
本節主要介紹呼叫 Python 官方庫函式實現十進位到二進位。 Python 語言的內建函式提供了 bin()、int()、oct() 和 hex(),目標基本系統分別對應二進位、十進位、八進位和十六進製。
本文的目的是為十進位數到二進位數的求解提供參考,因此重點介紹了 bin() 函式的使用。
bin() 函式的官方宣告如下:
從上圖的宣告資訊可以清楚地看出,bin() 引數的資料型別僅限於 int 型別,因此需要注意引數的傳遞。 當使用 bin() 函式實現十進位整數時,您只需要傳入 int 型別即可獲得結果。 對於帶有小數的十進位數,bin() 不適用。