1. 程式人生 > >python(十進位制轉換成二進位制、八進位制、十六進位制)(正則)

python(十進位制轉換成二進位制、八進位制、十六進位制)(正則)

 

#coding=utf-8
import re
print("十進位制轉換成二進位制、八進位制、十六進位制")

num = input("請輸入一個十進位制的整數:")

pattern = re.compile(r'[^0-9]+')
if(re.search(pattern,num)):
    print("輸入的格式不正確")
else:
    num = int(num)
    #十六進位制
    cc = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    #a是二進位制,b是八進位制,c是十六進位制
    alist = []
    blist = []
    clist = []

    #轉成二進位制
    temp = num
    while temp:
        residue = str(temp % 2)
        temp = temp // 2        
        alist.append(residue)
    alist.reverse()

    #轉成八進位制
    temp = num
    while temp:
        residue = str(temp % 8)
        temp = temp // 8        
        blist.append(residue)
    blist.reverse()    

    #轉成十六進位制
    temp = num
    while temp:
        residue = cc[temp % 16]
        temp = temp // 16        
        clist.append(residue)
    clist.reverse()    

    #輸出結果
    print("轉換成二進位制為")
    print(''.join(alist))
    print("轉換成八進位制為")
    print(''.join(blist))
    print("轉換成十六進位制為")
    print(''.join(clist))
#coding=utf-8
print("十進位制轉換成二進位制、八進位制、十六進位制")
try:
    num = int(input("請輸入一個十進位制的整數:\n"))
    #十六進位制
    cc = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    #a是二進位制,b是八進位制,c是十六進位制
    alist = []
    blist = []
    clist = []
    
    #轉成二進位制
    temp = num
    while temp:
        residue = str(temp % 2)
        temp = temp // 2        
        alist.append(residue)
    alist.reverse()
    
    #轉成八進位制
    temp = num
    while temp:
        residue = str(temp % 8)
        temp = temp // 8        
        blist.append(residue)
    blist.reverse()    
    
    #轉成十六進位制
    temp = num
    while temp:
        residue = cc[temp % 16]
        temp = temp // 16        
        clist.append(residue)
    clist.reverse()    
    
    #輸出結果
    print("轉換成二進位制為")
    print(''.join(alist))
    print("轉換成八進位制為")
    print(''.join(blist))
    print("轉換成十六進位制為")
    print(''.join(clist))
    
except:
    print("輸入的格式不正確")