進位制轉換

2020-07-16 10:04:23
所謂進位制轉換,就是將一種進位制的數位轉換為另一種進位制的數位。數位的表示形式雖然改變了,但是數位的值並沒有變。

這裡我們講解兩種方法,第一種是簡單的口演算法,第二種是複雜的公式法。

進位制轉換口演算法

我們來思考一個問題:為什麼八進位制數 17 對應的十進位制數是 15?我們看八進位制數 17 中的 7,這個 7 是沒有進位的,它同十進位制數 7 是一樣的,因為它是在個位。而八進位制數 17 中的 1,它能進一是因為有 8 才進一的,所以這個 1 代表的就是十進位制的 8。所以一個 8 和一個 7 加起來就是 15,這就是為什麼八進位制數 17 對應的十進位制數是 15 的原因。

現在我來考考讀者,看讀者能不能立刻回答出來。八進位制數 23 對應的十進位制數是多少?十進位制數 34 對應的八進位制數是多少?

同樣,八進位制數 23 中的 3 和十進位制數 3 是一樣的,而 2 說明進了兩次位,有 8 才能進一次,進了兩次說明是十進位制的 16,所以 16 和 3 加起來就是 19。因此八進位制數 23 對應的就是十進位制數 19。

十進位制數 34 裡有 4 個 8,餘 2,所以十進位制數 34 對應的就是八進位制的 42。

我再來問問大家,看大家能不能舉一反三:十六進位制的 3D 對應的十進位制是多少?十進位制的 83 對應的十六進位制是多少?

方法是相同的,十六進位制數 3D 中的 D 表示的是十進位制的 13,而十六進位制達到 16 才能進一次,數位 3 說明進了 3 次,即 48,13 和 48 加起來就是 61。因此,十六進位制數 3D 就對應十進位制數 61。同樣,十進位制 83 中有 5 個 16,餘 3,所以十進位制數 83 就是十六進位制數 53。

如果是八進位制和十六進位制相互轉換的話,因為它們都跟十進位制有關係,所以可以將十進位制當作一個橋樑,先轉換成十進位制,然後再轉換成另一個進位制。

以上的口算方法實際上就是進位制轉換的本質和奧秘的總結。但是用口算方法只能計算比較小的數位,當數位比較大的時候還是得在紙上算。之所以沒有講如何用口算進行二進位制轉換,原因就是二進位制的計算量很大,不適合口算。介紹口算方法的主要目的是想讓大家體會進位制轉換的本質,從而能夠深刻理解下面所講的公式法。

進位制轉換公式法

以上講的是進位制轉換的本質,下面系統地講一下進位制轉換。在閱讀本節之前建議大家先掌握上節的內容,這樣效率會更高,理解會更深刻。

1) r 進位制轉換成十進位制

r 進位制數 an an–1…a1 a對應的十進位制數為:

an×r+ an–1×rn–1 + … + a1×r+ a0×r0

下面給大家舉幾個例子:
  • (1011011)2=1×26+0×25+1×24+1×23+0×22+1×21+1×20=64+0+16+8+0+2+1=91
  • (356)8=3×82+5×81+6×80=192+40+6=238
  • (2FB)16=2×162+15×161+11×160=512+240+11=763

2) 十進位制轉換成 r 進位制

方法:除 r 取餘數,直至商為零,餘數倒序排序。

下面給大家舉個例子:十進位制 185 分別轉換成二進位制、八進位制和十六進位制。