1. 程式人生 > >Python十進位制轉二、八、十六進位制

Python十進位制轉二、八、十六進位制

從十進位制轉其他進位制是非常簡單的,無非是分為兩步:

  1. 將這個數對要轉換的進位制數相除,取餘數,如num%8,繼續拿著除之後的整數部分對進位制數取餘數,直到整數部分為0為止
  2. 將餘數倒序輸出,即可得到結果
num = input('input an int number: ')
t = input('input type(2,8,16): ')

def trans(num):
    m = 0
    lst = []
    if t==16:
        standar_result = hex(num)
        result = '(16)'
    elif t==8
: standar_result = oct(num) result = '(8)' elif t==2: standar_result = bin(num) result = '(2)' while(num!=0): q = num%t num = num/t lst.append(q) m+=1 lst = lst[::-1]#倒序 for item in lst:#十六進位制10以上的數要轉為字母 if item ==10
: item = 'a' elif item ==11: item = 'b' elif item ==12: item = 'c' elif item ==13: item = 'd' elif item ==14: item = 'e' elif item ==15: item = 'f' s = str(item) result+=s return
result,standar_result print 'result=%s\nstandar_result=%s'%(trans(num))

執行:
例1.

input an int number: 543
input type(2,8,16): 8
result=(8)1037
standar_result=01037

例2.

input an int number: 543
input type(2,8,16): 16
result=(16)21f
standar_result=0x21f

例3.

input an int number:  431
input type(2,8,16): 2
result=(2)110101111
standar_result=0b110101111