生活中咱們使用的數字都是十進制的,而二進制是機器可以識別的最直接的語言。可是二進制又太大,記錄起來很是的不方便。因此一般會將二進制轉化爲八進制或者十六進制。python
平常生活中咱們所說的數字 (十進制)在0~9之間,同理 二進制的範圍是01,八進制的範圍07,十六進制的範圍0~15。 那問題來了,當超過9以後,十六進制該如何表示呢? 答案是用af,表示對應的1015code
在Python中該如何表示每一種進制呢?get
# 普通的十進制 a = 12 print(a) # 12 # 0b表示二進制 b = 0b100100 print(b) # 36 # 0o表示八進制 c = 0o56 print(c) # 46 # 0x表示十六進制 d = 0x2a1 print(d) # 673
將十進制數除2取餘數,直到商爲0時。class
以12爲例,進階
12 / 2 = 6 餘 0 6 / 2 = 3 餘 0 3 / 2 = 1 餘 1 1 / 2 = 0 餘 1
從上到下取餘數,所以,12 對應的 二進制 爲 :1100二進制
把二進階按權展開,相加便可。如二進制位:1100,按照下面的格式展開im
0 0 1 1 1\*2^0 1\*2^1 1\*2^2 1\*2^3
0 * 1*2^0 + 0 * 1*2^1 + 1 * 1*2^2 + 1 * 1*2^3 = 12語言
將2進制從右到左的順序按照3位拆分,不足時 補0。 例如二進制:1100可拆分紅生活
001 100 而後按權展開組合起來便可。co
即:
0*2^2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 = 1
1*2^2 + 0 * 2 ^ 1 + 0 * 2 ^ 0 = 4
所以對應的八進制爲 14。
經過對八進制除2取餘數,
1的二進制爲1 ,不夠3位補0,即001
4的二進制爲100
所以八進制14轉二進制的結果 爲:001100
事實上,平常中用到的主要就是二進制和十進制的轉換,其餘瞭解一下就能夠了。
在Python中,已經講各類進制的轉換進行了封裝,直接調用便可。
a = 12 print(bin(a)) # 0b1100 十進制轉二進制 print(oct(a)) # 0o14 十進制轉八進制 print(hex(a)) # 0xc 十進制轉十六進制 # 二進制轉十進制 print(int('0b1100', 2)) # 八進制轉十進制 print(int('0o14', 8)) # 十六進制轉十進制 print(int('0xc', 16))