從十進位制轉其他進製是非常簡單的,無非是分為兩步:
將這個數對要轉換的進製數相除,取餘數,如num%8
,繼續拿著除之後的整數部分對進製數取餘數,直到整數部分為0為止
將餘數倒序輸出,即可得到結果
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
m+=1
lst = lst[::-1]#倒序
foritem
in lst:#十六進製制10以上的數要轉為字母
ifitem ==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
python實現二,八,十六進製制與十進位制之間的轉換
1 把不同進製轉化為十進位制 例如,把16進製制的0xd32c轉為十進位制 把2進製的0b10轉為十進位制 int 0b10 2 2 2 把不同進製轉化為二進位制 例題 計算表示式的值,要求如下 1.各個表示式不一定都是十進位制數字,也有八進位制 0開頭 十六進製制 0x開頭的 2.表示式中運算子包...
十進位制轉二 八 十六進製制的字串
這是我自己寫的 有問題希望指出。沒問題希望誇我幾句,我會繼續努力的,哈哈。十進位制轉二進位制 1 class dectobin 214 binstr dec 0?binstr dec 0?0 binstr 1516 system.out.println binstr 17 18 十進位制轉八進位制 ...
C語言實現十進位制轉二,八,十六進製制(棧的思想)
include stdio.h define stacksize 100 假定預分配的棧空間最多為100個元素 typedef int datatype 假定棧元素的資料型別為整數 typedef structseqstack 置棧空 void initial seqstack s 判棧空 int ...