即時進位轉換器

如何在不同進位制度之間進行轉換

寫程式、算作業常會碰到二進制、八進制、十進制、十六進制之間的轉換。方法其實只有一套,這篇文章把它講清楚,再附上二進制與十六進制之間的速算技巧。

什麼是進位制度?

進位制度是一種表示數字的方式,它使用一個基數(或基底)來決定每個位置的值。基數是一個固定的數字,表示每個位置可以容納的不同數字的數量。例如,十進制使用基數 10,表示每個位置可以容納 0 到 9 的 10 個數字。二進制使用基數 2,表示每個位置只能容納 0 或 1 的 2 個數字。八進制使用基數 8,表示每個位置可以容納 0 到 7 的 8 個數字。十六進制使用基數 16,表示每個位置可以容納 0 到 9 以及 A 到 F 的 16 個數字。

進位制度基數可容納的數字
十進制100 到 9
二進制20 或 1
八進制80 到 7
十六進制160 到 9 和 A 到 F

親手玩玩看:點擊下面的位元切換 0 和 1,看看十進位、十六進位、八進位的值怎麼跟著變。每四個位元剛好對應一個十六進位數字。

128
64
32
16
十六進位
B
8
4
2
1
十六進位
6
十進位
182
十六進位
B6
八進位
266

通用的進位轉換方法

要將一個進位制度中的數字轉換為另一個進位制度中的數字,我們可以使用以下的通用方法,它包括以下五個步驟:

  1. 先把來源數字轉成十進位:把每個位數乘上「來源基數的位置次方」再全部相加。例如八進位 352 就是 3×8² + 5×8¹ + 2×8⁰。
  2. 再把得到的十進位數字轉成目標進位:不斷除以目標基數並記下餘數,直到商為 0,最後把餘數由後往前讀,就是答案。

轉換示例

用八進位的 352 轉十進位來走一遍第一步:

  1. 將數字 352 按位數分解:3、5 和 2。
  2. 每個位數乘上對應的 8 的次方:3×8² + 5×8¹ + 2×8⁰ = 192 + 40 + 2 = 234。
  3. 得到結果:352(八進位)= 234(十進位)。

常見問題

Q: 如何將十進制轉換為其他進位制度?

A: 要將十進制轉換為其他進位制度,我們可以使用除法和取餘數的方法。這個方法包括以下步驟:

  1. 將十進制數字除以目標進位制度的基數,並記下餘數。
  2. 將商再除以目標進位制度的基數,並記下餘數。
  3. 重複這個過程,直到商為零。
  4. 將所有的餘數從右到左排列,得到轉換後的數字。

例如,要將十進制的數字 234 轉換為八進制的數字,我們可以按照以下步驟進行:

  1. 234 / 8 = 29 ... 2
  2. 29 / 8 = 3 ... 5
  3. 3 / 8 = 0 ... 3
  4. 將餘數從右到左排列,得到 352(八進制)。

Q: 如何將二進制轉換為十六進制,或反之?

A: 要將二進制轉換為十六進制,或反之,我們可以使用分組和對應的方法。這個方法包括以下步驟:

  1. 將二進制數字按每四位一組進行分組,從右邊開始。如果最左邊的組不足四位,則在前面補零。
  2. 將每一組二進制數字對應到一個十六進制數字,根據下表進行轉換。
  3. 將所有的十六進制數字連接起來,得到轉換後的數字。
二進制十六進制
00000
00011
00102
00113
01004
01015
01106
01117
10008
10019
1010A
1011B
1100C
1101D
1110E
1111F

例如,要將二進制的數字 10110110 轉換為十六進制的數字,我們可以按照以下步驟進行:

  1. 將二進制數字 10110110 按每四位一組進行分組,從右邊開始:1011 0110。如果最左邊的組不足四位,在前面補零即可。
  2. 將每一組二進制數字對應到一個十六進制數字,根據下表進行轉換:1011 -> B,0110 -> 6。
  3. 將所有的十六進制數字連接起來,得到轉換後的數字:B6(十六進制)。

要將十六進制轉換為二進制,我們可以反過來執行這個方法,即:

  1. 將十六進制數字按每一位進行分解,例如:B6 -> B 和 6。
  2. 將每一位十六進制數字對應到一組四位的二進制數字,根據下表進行轉換:B -> 1011,6 -> 0110。
  3. 將所有的二進制數字連接起來,得到轉換後的數字:1011 0110(二進制)。如果需要,可以去掉前面的零。