什麼是進制轉換?
進制轉換只改變一個數字的「寫法」,並不會改變它真正的數值。工程師與程式設計師經常需要在二進位(base 2)、八進位(base 8)、十進位(base 10)與十六進位(base 16)之間切換,而這個工具支援從 2 到 36 的任何進制,使用 0–9 加上 A–Z 的符號來表示。
使用方式
輸入你想轉換的數字,設定它目前所使用的進制(來源進制),再設定你希望轉換成的進制(目標進制)。當進制超過 10 時,請使用英文字母:A=10、B=11,一直到 Z=35。計算機同時會顯示對應的十進位(base 10)數值,方便你核對運算結果。
公式原理
轉換分為兩個步驟。首先,輸入值會以「位值記數法」換算成十進位:每一位數字乘以「來源進制」的(位置次方),再把所有乘積加總起來。接著,再把這個十進位數值轉換成目標進制——做法是反覆除法:用目標進制去除、記下餘數、再用商繼續除,最後把所有餘數由後往前倒著讀出來,就是答案。
$$\text{Result} = \left( \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \right)_{10} \longrightarrow \text{To Base}$$$$\begin{gathered} V_{10} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \\[1.5em] \text{Result} = \left( V_{10} \right)_{\text{To Base}} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= \text{digit } i \text{ of } \text{Number} \\ k &= \text{number of digits} \end{aligned} \right. \end{gathered}$$
實際範例
把二進位 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 | 二進制 | 0–1 | 數位電子與電腦記憶體中的原生表示法;每個位元要麼開啟要麼關閉。 |
| 8 | 八進制 | 0–7 | 二進制以三位為單位的緊密分組;Unix/Linux 檔案權限模式(例如 755)。 |
| 10 | 十進制 | 0–9 | 日常人類算術、貨幣、測量與一般計數。 |
| 16 | 十六進制 | 0–9, A–F | 位元組的緊密顯示、記憶體位址、色碼(例如 #FF8800)與機器碼。 |
| 36 | 36 進位制 | 0–9, A–Z | 使用數字加拉丁字母的最大進位制;短英數字 ID 與 URL 別名。 |
十進制–二進制–八進制–十六進制轉換表
下表為參考資料,顯示常見的十進制值及其二進制(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 |
注意 255(單一位元組的最大值)恰好等於八個二進制的 1 以及兩個十六進制的 F——每個十六進制數字整齊地映射到四位元。
關鍵術語解釋
- 進位制 / 基數
- 數值系統使用的唯一數字符號的個數。10 進位制(十進制)使用十個符號(0–9);2 進位制(二進制)使用兩個(0–1)。「基數」是進位制在正式數學中的同義詞。
- 位置計數法
- 一種數字的值取決於其位置的系統。每個位置承載的權重等於進位制的底數升至一個冪:在 \(b\) 進位制中,位置 \(i\)(從右邊 0 開始計數)的數字對數值的貢獻為 \(d_i \cdot b^{\,i}\)。
- 數字
- 一個數字內的單一符號。有效的數字受進位制限制——16 進位制允許 0–9 與 A–F,其中 A–F 表示十進制的 10–15。
- 最有效數字 (MSD)
- 最左邊的數字,承載最大的位置權重,因此對數字值的影響最大。
- 最低有效數字 (LSD)
- 最右邊的數字,位置權重為 \(b^{0}=1\);改變它會以最小的幅度改變數值。
- 二進制、八進制、十六進制
- 分別為 2、8 與 16 進位制的數值系統。在運算中它們受歡迎是因為它們的基數都是二的冪,所以位元組可以乾淨地轉換:每個八進制數字對應 3 位,每個十六進制數字對應 4 位。
- 商數與餘數
- 整數除法的兩個結果,用於從十進制轉換到另一個進位制:反覆除以目標進位制,記錄每個餘數作為一個數字(最低有效位優先),直到商數達到 0。
常見問題
最大可以到幾進制?36,因為標準符號集 0–9 加上 A–Z 總共提供了 36 個符號。
可以處理負數嗎?可以——開頭的負號會被保留在輸出結果中。
能轉換小數或分數嗎?這個版本只支援整數(whole numbers)。