1. 程式人生 > >Python進制轉換

Python進制轉換

nbsp 英文字母 相互轉換 span 阿拉伯 轉換 div font bubuko

進制轉換:先介紹不用函數的方法,再介紹用函數的方法
二進制轉十進制: 1101 轉為十進制 1*2^(4-1)+1*2^(3-1)+0*2^(2-1)+1*2^(1-1) 即各個位拆開,乘以2的(位數-1)次方,結果為13
>>> int(1101,2)  
13
>>> int(‘0o226‘,8) #00226 0:阿拉伯數字零 o:小寫英文字母 o 226:八進制數
150
>>> int(‘0x96‘,16)
150

同理可得:把八進制、十六進制數按權展開、相加即得十進制數。

技術分享圖片

十進制轉二進制: 比如13 用13除以2,得到的商再除以2 直到除到1,然後記錄每次得到的余數, 從後往前讀,即為 1101 同理可得,十進制轉八進制或者十六進制按照除8或者16取余,直到商為0為止,再從最後一位讀到第一位
技術分享圖片
>>> bin(13)
0b1101

技術分享圖片

八進制轉為二進制: 比如八進制數 (37)8 拆開 3 7 3用2禁制表示為 11 7用二進制表示為 111 合起來 即為 11 111 同理 十六進制轉二進制
>>> bin(0o37)    #0o37   0:阿拉伯數字0   o:八進制表示
0b11111
>>> bin(0x33)
0b110011
>>> 

二進制轉八進制: 二進制從右邊數,3位3位為一組,轉為十進制比如: 10 110 011 111 2 6 3 7 對應八進制就是為 (2637)8 同理十六進制,不過此時二進制應該是 從右往左邊數,4位4位為一組
>>> oct(0b10110011111)
0o2637
>>> hex(0b10110011111)
0x59f
>>> 

101 1001 1111 轉為十六進制對應如下:

5 9 f (15)

八進制與十六進制之間的轉換有兩種方法:

第一種:他們之間的轉換可以先轉成二進制然後再相互轉換。

第二種:他們之間的轉換可以先轉成十進制然後再相互轉換。

>>> oct(0x37)
0o67
>>> hex(0o67)
0x37

Python進制轉換