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


很簡單的一段,當練手

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,再如圖,逆序排列,此時的逆序排列的數便是二進制數。

 

    


免責聲明!

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



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