什麼是進位轉換計算機?
這個工具可以把一個數值從某種位值記數系統轉換成另一種——在二進位(base 2)、八進位(base 8)、十進位(base 10)與十六進位(base 16)之間自由換算。它在電腦科學、數位電子與程式設計中應用非常廣泛,因為同一個數值在不同情境下往往會以不同的進位方式來表示。
如何使用
輸入你想轉換的數值,在「來源進位」中選擇這個數值目前所使用的進位,再到「目標進位」中選擇你想轉換成的進位。計算機會顯示換算後的結果,同時也會列出對應的十進位(base 10)數值,方便你核對換算是否正確。
公式說明
任何一個數值,都等於每一位數字乘以「進位的位置次方」之後再加總:
$$\text{Result}_{(\text{To base})} = \left( \sum_{i=0}^{k-1} d_i \cdot \text{From base}^{\,i} \right)_{(\text{To base})}$$位置由右往左從 0 開始計算。若要反向換算,計算機會把十進位數值不斷除以目標進位,並記下每一次的餘數;把這些餘數由最後一個讀回第一個,就得到該數在新進位下的各個位數。
範例演練
把二進位 1010 轉成十進位:
$$1\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0 = 8 + 0 + 2 + 0 = 10$$再把十進位 255 轉成十六進位:\(255 \div 16 = 15\) 餘 15(F),\(15 \div 16 = 0\) 餘 15(F),因此結果為 FF。
跨基數的常見值
下表顯示相同數值以四種常見進位制表示:二進制(2進制)、八進制(8進制)、十進制(10進制)和十六進制(16進制)。小連續值(0–16)對學習各進位制如何計數很有用,而二的冪次和位元組邊界(32、64、128、255、256)在計算中不斷出現,因為記憶體和暫存器是以位元組組織的。
| 十進制(10進制) | 二進制(2進制) | 八進制(8進制) | 十六進制(16進制) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
注意一個十六進制數字恰好對應四個二進制數字(半位元組),所以 255 適應兩個十六進制數字(FF)和八個二進制數字,即單個位元組的大小。
數值系統中的關鍵術語
- 基數(基底)
- 位置記數系統使用的不同數字符號的數量,以及每個連續位的乘以值。10 進制使用十個符號(0–9);2 進制使用兩個(0–1)。術語基數和基底可互換使用。
- 二進制(2進制)
- 只使用數字 0 和 1 的數值系統。每一位表示 2 的一個冪次。二進制是數位電子產品的原生語言,因為電路容易表示兩種狀態(關閉/開啟)。
- 八進制(8進制)
- 使用數字 0–7 的數值系統,其中每一位是 8 的冪次。一個八進制數字整齊地映射到三個二進制數字,在歷史上這使它成為二進制的精簡速記法。
- 十進制(10進制)
- 使用數字 0–9 的日常記數系統,每一位是 10 的冪次。它是人類算術的預設基數。
- 十六進制(16進制)
- 使用數字 0–9 和字母 A–F(表示 10–15)的數值系統,每一位是 16 的冪次。一個十六進制數字恰好等於四個二進制數字,使十六進制成為編寫位元組值的精簡方法。
- 數字
- 數字中的單個符號。允許的數字取決於基數——例如,16 進制允許數字符號 0–9 和 A–F。
- 位置記數法
- 一個系統,其中數字的值取決於其位置。數字的值是每個數字乘以基數的位數次冪的總和,例如 \(101_2 = 1\cdot2^2 + 0\cdot2^1 + 1\cdot2^0 = 5\)。
- 最高有效位(MSD)
- 數字的最左邊數位——最高值位置中的那一位,對總和的貢獻最大。
- 最低有效位(LSD)
- 數字的最右邊數位——最低值位置中的那一位(個位),貢獻最小的量。
- 半位元組
- 四個二進制位的組合。半位元組可以保存值 0–15,並對應恰好一個十六進制數字。
- 位元組
- 八位的組合(兩個半位元組),能表示 256 個不同的值(0–255,或十六進制中的 00–FF)。位元組是數位儲存的標準單位。
常見問題
十六進位中的英文字母也能處理嗎?可以——十六進位以 A–F 代表 10–15,輸入時不分大小寫。
可以轉換負數嗎?可以,只要在數值前加上負號(減號),轉換後仍會保留正負號。
如果輸入無效會怎樣?如果某個數字不屬於所選來源進位允許的範圍(例如在二進位中輸入「9」),結果會顯示「無效的輸入」。