一文了解進制之間的原理和轉換


生活中我們使用的數字都是十進制的,而二進制是機器能夠識別的最直接的語言。但是二進制又太大,記錄起來非常的不方便。所以通常會將二進制轉化為八進制或者十六進制。

日常生活中我們所說的數字 (十進制)在0~9之間,同理 二進制的范圍是01,八進制的范圍07,十六進制的范圍0~15。 那問題來了,當超過9之后,十六進制該如何表示呢? 答案是用af,表示對應的1015

進制的表達

在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資料匯總(長期更新)。隔壁小孩都饞哭了 --- 點擊領取


免責聲明!

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



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