1. 程式人生 > >用python寫十進制與二進制之間轉換

用python寫十進制與二進制之間轉換

進制數 bre == png inf http info 數字 從右到左

很簡單的一段,當練手

def s2e():
    e = [0,0,0,0,0,0,0,0]
    s = int(input("請輸入一個十位數:"))
    for i in range(0,8,1):
        e[i] = int(s%2)
        s=s//2
    e.reverse()
    print("二進制數為:",e)

def e2s():
    s=[0,0,0,0,0,0,0,0]
    a=0
    s=list(input("請輸入一個二進制數:"))
    s.reverse()
    for i in range(0,len(s),1):
        if int(s[i]) == 1:
            a
+=pow(2,i) print("十進制數是:",a) while 1: choose = int(input("二進制轉十進制請輸入1\n十進制轉二進制請輸入2\n")) if choose==1: e2s() elif choose==2: s2e() else: break

技術分享圖片

二進制輸出為數組形式

還有待完善

歡迎大家提建議

思路:

  二進制轉十進制:

    我這裏用的是八位二進制,從右到左,第一位是2的0次方,第二位是2的1次方,以此類推,第8位便是2的7次方,所以只要判斷位數上的數字是1還是0,因為是從右到左,所以先把數組倒過來,這樣數組下標就好算一點,例如00000101(數字小好算點,嘿嘿);倒過來後便是10100000,此時第0位為1,那麽便是2的0次方,第2位是1,便是2的2次方,所有相加,就得到了十進制數

  十進制轉二進制:

技術分享圖片

附上一張百度來的圖

每次除以2求余,再用余數除以2再求余,如此直到最後一個數為1,再如圖,逆序排列,此時的逆序排列的數便是二進制數。

    

用python寫十進制與二進制之間轉換