Python實現十進制和二進制之間相互轉換


十進制轉二進制

  • 原理:采用除2取余,逆序排列輸出。
  • 實現:用2整除十進制整數,可以得到一個商和余數;再用2去除商,又會得到一個商和余數,如此進行,直到商為小於1時為止,然后依次翻轉排序即可得到二進制數,在Python中我們采”//”(地板除)的方法實現轉換
# 十進制整數轉二進制
def decToBin(num):
    arry = []   #定義一個空數組,用於存放2整除后的商
    while True:
        arry.append(str(num % 2))  #用列表的append方法追加
        num = num // 2   #用地板除求num的值
        if num == 0:     #若地板除后的值為0,那么退出循環
            break

    return "".join(arry[::-1]) #列表切片倒敘排列后再用join拼接

print(decToBin(10))

輸出結果:1010

二進制轉十進制

  • 原理:要從右到左用二進制的每個數去乘以2的相應次方求累加。
# 二進制整數轉十進制
def binToDec(binary):
    result = 0   #定義一個初始化變量,后續用於存儲最終結果
    for i in range(len(binary)):
        #利用for循環及切片從右至左依次取出,然后再用內置方法求2的次方
        result += int(binary[-(i + 1)]) * pow(2, i)

    return result

print(binToDec("1010"))
結果:10


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM