在不同進位制之間轉換,意思就是把同一個整數改用另一種數字系統來表示——數字會改變,但數值保持不變。實際操作上,你把以某個進位制寫成的數字(例如二進位的 1010)讀進來,再用目標進位制所允許的數字寫出同樣的數值(例如十進位的 10)。要在 2 到 36 之間的任何進位制之間快速完成這件事,最快的方法就是使用 Number Base Converter:輸入數值,選擇「來源進位」和「目標進位」,結果會立即顯示,並同時列出二進位、八進位、十進位和十六進位這四種常用進位制的表示,全程不需往返伺服器。你輸入的每一個數字都會根據所選的來源進位進行驗證,字母大小寫不分,前置的負號也會保留,而且由於計算使用 BigInt 算術而非固定大小的整數,任意大的整數都能精準轉換。所有轉換都在你的瀏覽器中完成,數字不會離開你的裝置。

「在不同進位制之間轉換」到底是什麼意思
進位制(或稱基數)同時代表兩件事:一個數字系統使用多少個不同的數字符號,以及寫成的數字中每一個位置的權重是多少。十進位(base 10)使用 0 到 9 的數字,每一個位置代表十的冪次,因此十進位的 255 表示 2×100 + 5×10 + 5×1。二進位(base 2)只使用 0 和 1,位置的權重依序為 1、2、4、8、16 等等。八進位(base 8)使用 0–7 的數字,十六進位(base 16)則使用 0–9 再加上 A–F 來表示十到十五。超過十之後,各進位制會繼續借用字母,一路借到 base 36,使用 0–9 加上 A–Z。
同一個整數可以在所有這些進位制中表示出來,儘管數值完全相同,看起來的數字卻截然不同。下表把數值 255 並列展示在四種常用進位制中的表示方式。
| 進位制 | 名稱 | 使用的數字 | 同一數值(十進位的 255) |
|---|---|---|---|
| 2 | 二進位 | 0, 1 | 11111111 |
| 8 | 八進位 | 0–7 | 377 |
| 10 | 十進位 | 0–9 | 255 |
| 16 | 十六進位 | 0–9, A–F | FF |
轉換工具的工作就是把表中某一列的表示,轉換成另一列的表示,方向任意。
如何使用本工具在不同進位制之間轉換
對於任何整數以及 base 2 到 base 36 之間的任何來源/目標配對,操作步驟都一樣:
- 把你想轉換的整數完整輸入到數值欄位中。字母大小寫不分(FF 和 ff 會被視為相同),如果需要表示負整數,也可以加上前置的負號。
- 選擇「來源進位」,使其對應到你輸入所使用的進位制(例如 1010 這類輸入選二進位,FF 這類輸入選十六進位,以此類推),然後挑選「目標進位」,作為你希望得到的結果所使用的進位制。
- 立即讀取轉換後的結果。本工具也會同時把該數值以二進位、八進位、十進位和十六進位這四種常用進位制一併顯示,因此你不必再跑第二次轉換。
如果你輸入了一個在所選「來源進位」中不合法的數字——例如二進位中出現 2,或是十六進位中出現字母 G——轉換器會明確標示出有問題的字元,而不是默默地回傳錯誤的答案;後者正是許多較差工具常見的失敗模式。
如果你的任務是專門把數字改寫成十進位,那麼我們專門寫的指南 how to change a number to base 10 會以十進位為目標,帶你逐步使用同一個工具。
手動轉換的原理
理解兩種經典方法,會讓你更容易信任任何自動轉換器。第一種方法叫做位值展開法,可以把任何進位制轉成十進位,公式如下:
數值 = d₀ × base⁰ + d₁ × base¹ + d₂ × base² + ...
以二進位的 1010 為例,最右邊的數字代表 1 的位置,再往左依序是 2、4、8 等位置。把數字和位置代入:
(1 × 8) + (0 × 4) + (1 × 2) + (0 × 1) = 8 + 0 + 2 + 0 = 10
所以二進位的 1010 等於十進位的 10。
第二種方法叫做除法收集法,可以把十進位整數轉成任何其他進位制。反覆把十進位數值除以目標進位,記錄每次的餘數,再從下往上讀出所有餘數。例如把十進位的 10 轉成二進位:10 ÷ 2 = 5 餘 0;5 ÷ 2 = 2 餘 1;2 ÷ 2 = 1 餘 0;1 ÷ 2 = 0 餘 1。從下往上讀就得到 1010。當數字超過寥寥幾位時,這兩種方法手動做起來都很煩人,也很容易出錯,而這正是轉換器能夠吸收的工作量。
在不同進位制之間轉換實際會出現在哪裡
這些轉換並非抽象的練習——在運算的許多實際領域中,它都是日常任務。
| 領域 | 使用的進位制 | 例子 |
|---|---|---|
| 電腦硬體 | 二進位(base 2) | 一個位元不是關(0)就是開(1) |
| 低階程式設計 | 十六進位(base 16) | 位元組值、記憶體位址、雜湊摘要 |
| 網頁/CSS 色彩 | 十六進位 | #FF8800 代表紅色 255、綠色 136、藍色 0 |
| 網路 | 十六進位 | MAC 位址,例如 00:1A:2B:3C:4D:5E |
| Unix 檔案權限 | 八進位(base 8) | chmod 755 為擁有者設定讀取/寫入/執行權限 |
由於每一個十六進位數字剛好對應四個二進位位元,十六進位就成了二進位的一種簡潔速記,既能讓人閱讀,也能讓人輸入。這就是為什麼程式設計師只要需要在這些表示法之間轉換,就會伸手拿起轉換器。
Number Base Converter 做對了哪些事
有幾個設計選擇,能讓一個嚴謹、精準的轉換器有別於天真的版本:
- 嚴格的數字驗證。你輸入的每一個字元都會根據所選「來源進位」所允許的數字進行檢查。二進位只接受 0 和 1,十六進位只接受 0–9 和 A–F,base 5 只接受 0–4,以此類推。無效字元會產生明確的錯誤訊息,而不是悄悄回傳錯誤的數字。
- 字母大小寫不分。FF、ff 和 Ff 是相同的十六進位數值,這條規則同樣適用於任何大於十、會使用字母的進位制。
- 前置負號。可以接受負整數,並在轉換過程中保留其正負號。
- 任意精度算術。本工具使用 BigInt 而非固定大小的整數,因此非常大的數字也能精準轉換,不會有捨位錯誤,也不會溢位。
- 同時顯示四種常用進位制。除了你所選「目標進位」的答案之外,介面上也會並列顯示二進位、八進位、十進位和十六進位,這通常才是你真正需要的資訊。
- 完全在用戶端執行。不會上傳任何資料,因此私密或敏感的整數都會留在你的裝置上。
對於上述任何情況——包括最高達 36 的任意進位制以及非常大的整數——Number Base Converter 都會在你輸入完成的瞬間立即處理轉換。
需要留意的限制
開始之前,有兩個限制值得先了解。
- 僅支援整數。本轉換器聚焦於整數,無法處理分數或小數點。小數值的進位制轉換是另一個更為複雜的運算。
- 進位制範圍為 2 到 36。此範圍內的任何進位制都支援。更高的進位制則不支援,因為在 0–9 加上 A–Z 之外,並無一致的數字符號可用。
在這些限制之內,每次轉換都是精準且即時的。
想深入了解,請參閱 How to Convert Number Bases Using an Online Calculator。