通俗易懂,二進制多進制轉換再也不怕啦

生活中,人腦對很多事物都形成了條件反射,比如數字,習慣了十進制的我們可以很方便的對數字25、27進行大小比較和數值運算,卻很難對二進制數字11001、11011有直觀的感受。

其實想要弄清楚這些進制很簡單,十進制各位都很熟悉,那先從十進制入手。

十進制計數規則是:

  • 基數為10。
  • 有10個數字,0、1、2、3、4、5、6、7、8、9。
  • 逢10進1,借1當10。

那麼,二進制計數規則就是:

  • 基數為2。
  • 有2個數字,即0和1。
  • 逢2進1,借1當2。

十進制可以有多位組成,從右向左依次為個位、十位、百位、千位、萬位...

於此類似,那麼二進制也可以由多位數組成,從右向左分別為1位、2位、4位、8位、16位...

通俗易懂,二進制多進制轉換再也不怕啦

為什麼稱二進制的位數為1位、2位、4位...

其實這是從十進制的角度看二進制各位數得出的名稱。

通俗易懂,二進制多進制轉換再也不怕啦

看上表,當二進制產生進位時,代表的十進制數為2、4、8、16、32、64、128...

二進制雖然只有0和1兩個數字,但是由於數字所處的位置不同,表示的數據也不同,例如:

二進制數 “1011”

這個二進制數共有4位,由3個1和1個0組成,比如數字1所處位置不同,所代表的大小也不同,其所處位置稱作權。從右向左順序各個位表示十進制的含義:

第一個1表示:1的個數

第二個1表示:2的個數

第三個0表示:4的個數

第四個1表示:8的個數

(在此可以類比十進制1011,由1個1000,0個100,1個10,1個1組成。)

所以,二進制數1011由1個8,0個4,1個2,1個1組成。按各位的權列出:

通俗易懂,二進制多進制轉換再也不怕啦

按這種權展開式可以很方便將二進制轉換為十進制。

相應的,十進制轉換成二進制整數就通常採用“除2取餘,逆序排列”的方法。具體做法是用2整除十進制整數,可以得到一個商和餘數,再用2去除商,又會得到一個商和餘數,如此反覆,直到商為0停止。再把先得到的餘數作為二進制低位有效位,後得到的餘數作為二進制高位有效位,依次排列。

舉個栗子:

將十進制“11”轉換為二進制。

通俗易懂,二進制多進制轉換再也不怕啦

將十進制11轉換為二進制數為1011。

和十進制相比,二進制的運算規則也就簡單多了。

加法

二進制運算只會有以下4種可能

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10

(逢二進一)

對於多位數二進制相加,考慮進位採用“逢2進1”的方式,例如十進制25(二進制11001)加上十進制27(二進制11011):

通俗易懂,二進制多進制轉換再也不怕啦

減法

也只有4種可能:

0 - 0 = 0

1 - 0 = 1

1 - 1 = 0

0 - 1 = 1

(借一當二)

通俗易懂,二進制多進制轉換再也不怕啦

乘法

十進制可以按照九九乘法表運算,二進制乘法規則就簡單多了,也有4種情況:

0 × 0 = 0

1 × 0 = 0

0 × 1 = 0

1 × 1 = 1

二進制乘法也可以很簡單轉換為加法運算,例如十進制25(二進制11001)乘以十進制5(二進制101)。

通俗易懂,二進制多進制轉換再也不怕啦

除法

除法是乘法的逆運算,二進制乘法有4種,除法也是應該對應4種,考慮0作為除數是沒有意義的。所以除法有以下兩種:

0 ÷ 1 = 0

1 ÷ 1 = 1

例如十進制25(二進制11001)除以十進制5(二進制101)。

通俗易懂,二進制多進制轉換再也不怕啦

比較複雜的乘法和除法運算都能簡單的轉換為加、減和位移操作,所以一般計算機也只需要設計一個加法器即可。

二進制弄清楚了,八進制也就很好懂了。

其實很早,古人就明白了八進制的概念,比如八卦...

八卦最初就是古人的記事符號,只是後來作為占卜工具被打上封建迷信的標誌。

其中隱含著二進制和八進制的概念。

八卦的基本元素就是陰和陽,相當於二進制中的0和1。

下圖中用長實線代表“陽”,用中間斷開的線代表“陰”,然後由3種這樣的線條組成8種形狀,相當於3位二進制數表示8種狀態。

通俗易懂,二進制多進制轉換再也不怕啦

通俗易懂,二進制多進制轉換再也不怕啦

當然,八進制計數不可能用八卦表示,通常採用0-7的阿拉伯數字表示

八進制的計數規則:

  • 基數為8。
  • 由8個數字組成,分別是0、1、2、3、4、5、6、7。
  • 逢8進1,借1當8。

十六進制,在古代中國當時使用的重量單位就是十六進制,16兩為1斤,就有了所謂的“半斤八兩”。

同樣十六進制的計數規則為:

  • 基數為16。
  • 由16個數字符號組成,分別是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
  • 逢16進1,借1當16。

各種進制的轉換

前面二進制和十進制相互轉換的方法,同樣適用於其他進制的數轉換為十進制。

“按權展開”—其他進制轉換為十進制(B表示各進制的基數,n表示位數):

通俗易懂,二進制多進制轉換再也不怕啦

例如十六進制數BC0D轉換為十進制:

通俗易懂,二進制多進制轉換再也不怕啦

“除基數B取餘,逆序排列”方法可以將十進制數轉換為任意進制數。

二進制和八進制、十六進制數的轉換可以採用更簡單的方法。

二進制轉換為八進制,採用“3位並1位”,按從右向左方向,每3位二進制位一組,最高位不足3位,添0補足3位,然後將各組3位二進制數加權展開,得到八進制數。

通俗易懂,二進制多進制轉換再也不怕啦

通俗易懂,二進制多進制轉換再也不怕啦

將八進制轉換為二進制採用相反的操作“1位拆3位”。

類似的,十六進制和二進制轉換為“4位並1位”,“1位拆4位”的方法。


分享到:


相關文章: