進制轉換:先介紹用傳統數學方法,再介紹用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。