點擊這段文字:?獲取2020年,最強Python學習資料
進制這塊,可以做簡單的了解。生活中我們使用的數字都是十進制的,而二進制是機器能夠識別的最直接的語言。但是二進制又太大,記錄起來非常的不方便。所以通常會將二進制轉化為八進制或者十六進制。
日常生活中我們所說的數字 (十進制)在0~9之間,同理 二進制的范圍是0~1,八進制的范圍0~7,十六進制的范圍0~15。那問題來了,當超過9之后,十六進制該如何表示呢?答案是用a~f,表示對應的10~15
進制的表達
在Python中該如何表示每一種進制呢?
- 默認輸入的數字為十進制
- 以0b開頭的數字表示二進制
- 以0o開頭的數字表示八進制
- 以0x開頭的數字表示十六進制
#?普通的十進制
a?=?12
print(a)?#?12
#?0b表示二進制
b?=?0b100100?
print(b)?#?36
#?0o表示八進制
c?=?0o56
print(c)?#?46
#?0x表示十六進制
d?=?0x2a1
print(d)?#?673
進制之間的轉換
1、十進制轉二進制
將十進制數除2取余數,直到商為0時。
以12為例,
12?/?2?=?6??余?0?
6??/??2?=?3??余?0
3??/??2?=?1??余?1
1??/??2?=?0??余?1
從上到下取余數,因此,12 對應的 二進制 為 ?:1100
2、二進制轉十進制
把二進階按權展開,相加即可。如二進制位:1100,按照下面的格式展開
???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
3、二進制與八進制轉換
將2進制從右到左的順序按照3位拆分,不足時 補0。例如二進制:1100可拆分成
001 100 ?然后按權展開組合起來即可。
即:
0*2^2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 = 1
1*2^2 + ?0 * 2 ^ 1 ?+ ?0 * 2 ^ 0 ?= 4
因此對應的八進制為 14。
4、八進制轉二進制
通過對八進制除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))
最后還是希望你們能給我點一波小小的贊或者在看~
如有文章對你有幫助,
“在看”和轉發是對我最大的支持!
關注Python極客專欄