標籤:次方 src size 技術分享 進位之間的轉換 記錄 bin 結果 表示
進位轉換:先介紹不用函數的方法,再介紹用函數的方法
二進位轉十進位: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 1112 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進位轉換