Python進制轉換


進制轉換:先介紹用傳統數學方法,再介紹用python內置方法

二進制轉十進制:
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用二進制表示為 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'

 

 

 

 

權值和第幾位相關,n進制第i位的權值是n的( i-1)次方。
例如:
十進制13579,常說的百位是5,其背后的理由是10^(3-1)=100
十六進制1A2B,B所處位的權值是16^(1-1)=1(即個位),1所處位的權值是16^(4-1)=4096
 
對於多位數,處在某一位上的“l”所表示的數值的大小,稱為該位的位權。例如十進制第2位的位權為10,第3位的位權為100;而二進制第2位的位權為2,第3位的位權為4,對於 N進制數,整數部分第 i位的位權為N^( i-1),而小數部分第j位的位權為N^-j。

 

 

 


免責聲明!

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



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