數字進位轉換計算機是一種工具,只要輸入數字,就能即時將整數從一種進位制轉換成另一種進位制——例如二進位 (base 2)、八進位 (base 8)、十進位 (base 10) 或十六進位 (base 16)——完全不需心算。使用方式是:把想轉換的數字輸入到數值欄位,選擇輸入數字所使用的進位 (「來源進位」),選擇想得到的結果所使用的進位 (「目標進位」),即可立即讀取轉換結果;此工具還會同時顯示同一數字在四種常見進位中的表示,讓您不必重複轉換兩次。由於相同的數字在不同的進位下代表完全不同的數值,「來源進位」設定負責告訴計算機如何讀取您的輸入,而「目標進位」設定則決定如何輸出答案。這是所有線上進位轉換器的運作流程,而且它適用於 2 到 36 之間的任何進位,不限於常見的四種。

how to convert number bases using calculator
how to convert number bases using calculator

進位制在運算中如何運作

數字的「進位」(又稱為「基數」)就是該進位制所使用的不同數字符號數量,以及每個位置的位值。十進位 (base 10) 使用十個數字,從 0 到 9,每個位置代表十的冪次,這就是為什麼數字 255 代表 2×100 + 5×10 + 5×1。二進位 (base 2) 只使用兩個數字 0 和 1,各位的位值依序為 1、2、4、8、16、32,依此類推。八進位 (base 8) 使用 0 到 7。十六進位 (base 16) 使用 0 到 9,再借用字母 A 到 F 代表十到十五,這就是為什麼十六進位的 FF 等於十進位的 255。

這四種進位制在運算領域中因為不同用途而經常出現。二進位是硬體的原生語言,因為電路中的每個位元只能是關或開。十六進位則是二進位的簡潔人工速記——每個十六進位數字正好對應四個位元——因此程式設計師在讀取記憶體位址、位元組數值、CSS 顏色代碼 (例如 #FF8800)、MAC 位址以及加密雜湊摘要時都會使用它。八進位則仍出現在 Unix 檔案權限中,例如 chmod 755,其中每個數字代表一組讀取、寫入和執行的位元。超過十的進位制只是繼續借用字母,一路到 base 36,使用 0–9 的數字與 A–Z 的字母,因此同一個工具就能轉換程式設計師實際會遇到的任何進位制。

兩個值得了解的手算方法

即使使用計算機,了解背後的數學原理也能幫助您察覺錯誤的輸出。進位轉換有兩種經典方法,分別對應兩個方向。

若要從其他進位轉換成十進位,請將每個數字乘以它的位值,再把所有結果相加。這稱為位置展開。例如二進位數字 1010,從左到右各位的位值分別為 8、4、2 和 1,因此二進位的 1010 等於 (1×8) + (0×4) + (1×2) + (0×1) = 8 + 0 + 2 + 0 = 十進位的 10。相同的概念適用於任何進位——以十六進位為例,只需將每個數字乘以 16 的冪次,而不是 2 的冪次。

若要從十進位轉換成其他進位,請將十進位數字反覆除以目標進位,然後從下往上讀取餘數。每個餘數就是新進位制中的一個數字,而它們產生的順序與讀取順序相反,這就是為什麼要從堆疊底部開始讀取。這是反向轉換 (十進位 → 二進位、十進位 → 十六進位、十進位 → 八進位) 的標準方法。

如何使用計算機進行進位轉換

  1. 將想轉換的整數輸入到數值欄位。字母不區分大小寫 (FF 和 ff 相同),允許以負號開頭表示負數。
  2. 選擇符合您數字寫法的「來源進位」——像 1010 這種數字選二進位,255 選十進位,FF 選十六進位,377 選八進位——然後選擇想得到的結果所使用的「目標進位」。
  3. 立即讀取轉換結果。使用數字進位轉換器時,還會同時顯示同一數值在四種常見進位 (二進位、八進位、十進位與十六進位) 中的表示,因此不需要重新轉換就能看到其他表示法。

真實工具中的常見轉換範例

以下是四種常見進位的對應關係,以及它們各自在真實工具中的應用場景:

進位名稱使用的數字典型用途
2二進位0, 1機器碼、位元旗標、硬體暫存器
8八進位0–7Unix 權限,例如 chmod 755
10十進位0–9日常運算、人類可讀的計數
16十六進位0–9, A–F記憶體位址、位元組數值、CSS 顏色 (例如 #FF8800)、雜湊摘要

兩個常見的參考數值:二進位的 1010 等於十進位的 10,十六進位的 FF 等於十進位的 255——這是同一個底層數字以不同位置系統表示的結果。一個好用的速記法是:每個十六進位數字正好對應四個二進位位元,因此十六進位的位元組 FF 對應二進位的 11111111 (F 貢獻四個 1,第二個 F 也貢獻四個 1),這就是為什麼十六進位是二進位的簡潔速記,最直觀的方式。

驗證、負數與大數

嚴謹的進位轉換計算機與粗糙版本之間的一個差別,在於嚴格的驗證。您輸入的每個數字都必須是所選進位制所允許的合法字元。二進位只允許 0 和 1,因此把 102 當作二進位數是無效的,因為 2 不是二進位數字。十六進位只允許 0–9 和 A–F,因此字母 G 在十六進位中是非法的。好的工具會標示出錯誤字元的確切位置,而不是靜默地回傳錯誤結果——這正是許多基礎線上轉換器的陷阱。

除了驗證之外,值得使用的計算機還應支援以負號開頭處理負數、以不區分大小寫的方式處理字母 (FF 和 ff 相等),並採用任意精度運算,使極大的整數能精確轉換而不會溢位或四捨五入。小數與小數點是另一個更複雜的運算,因此這類工具專注於整數,而不是假裝支援小數進位轉換。一切都在您的瀏覽器中執行,不會上傳到任何伺服器,這在處理記憶體位址、雜湊摘要或其他您不希望傳輸的數值時相當重要。

進位轉換器在工作流程中的定位

進位轉換會出現在低階程式設計、網路、除錯與數位電子領域,以及任何涉及原始位元組的工作中。程式設計師在讀取記憶體傾印、解碼封包擷取、計算子網路遮罩或對照權限位元時會用到它。網頁開發者在讀取 CSS 顏色值時會遇到它。學生在研讀進位制的電腦科學作業時會遇到它,而硬體玩家在閱讀充滿二進位旗標的規格書時也會遇到它。

若想更深入了解背後的數學原理,《如何在幾秒內將數字轉換為十進位》一文透過更多例題逐步說明位置展開。如果您需要一款能同時並列顯示二進位、十六進位、有號與無號數值,並直接進行位元運算的工具,程式設計師計算機可直接執行 AND、OR、XOR 以及位移運算。