進位轉換的運作原理
每個位置數字系統都以數字乘以基數冪次之和來表示數值。切換進位意味著將同一個值以不同的冪次序列重新表示。
- 驗證輸入字元集. 每種基數接受特定的數字集合。二進位接受 0 和 1;八進位接受 0–7;十進位接受 0–9;十六進位接受 0–9 和 A–F。超出所選字元集的字元會在執行任何轉換前顯示內嵌錯誤。
- 解析數值. 對於適合 JavaScript Number(最大 2^53-1)的數值,本工具呼叫
parseInt(text, base)。超過此界限時會改用BigInt,確保任意大整數的轉換精確無誤。 - 以各目標進位重新渲染. 解析後的數值透過
Number.prototype.toString(base)或BigInt.prototype.toString(base)轉換為各輸出進位。四個標準欄位(二進位、八進位、十進位、十六進位)與自訂進位欄位同步更新。 - 套用格式設定. 前綴切換可在二進位、八進位和十六進位輸出前加上 0b、0o 或 0x。數字分組則在每四個二進位數字及每兩個十六進位數字之間插入底線。十六進位大小寫切換可選擇 A–F 的大寫或小寫。
- 即時跨欄同步. 編輯任一欄位會觸發 100 毫秒的防抖重新轉換,並更新其他欄位。每次擊鍵時,正在輸入的欄位都會被視為真實來源。
為何使用進位轉換器
- 讀取記憶體傾印. 除錯器、反組譯器和核心傾印檢視器以十六進位顯示位址和暫存器值。將其轉換為十進位,便可與同一追蹤中的計數、大小和偏移量進行比較。
- 處理色彩代碼. CSS、設計工具和圖像格式以十六進位三元組(如 #d2511a)表示色彩。將每對數字轉換為十進位,即可得到色彩選擇器或無障礙檢查工具所需的 rgb(210, 81, 26) 格式。
- 解讀檔案權限. Unix chmod 值以八進位表示:755 表示 rwxr-xr-x,只需將每個八進位數字轉換為三個二進位位元即可。轉換器一步顯示此對應關係,讓你無需查閱手冊即可確認權限設定。
- 除錯位元旗標. 網路協定、核心系統呼叫和硬體暫存器將多個布林旗標打包成單一整數。以二進位讀取整數可一眼看出哪些位元已設定,這正是追查旗標未生效原因時所需要的。
常見應用場景
在日常開發、安全和硬體工作中,凡是數字不僅僅代表計數的場合,進位轉換就會出現。
- 嵌入式韌體:讀取 JTAG 探針的十六進位傾印,找到函式位址,並使用除錯腳本所接受的十進位偏移量撰寫中斷點命令。
- 網路安全:將以點分十進位印出的 32 位元網路遮罩解析回二進位以計算前綴長度,再以 CIDR 形式撰寫 ACL 規則。
- CTF 解題與密碼學挑戰:在十六進位、十進位和二進位之間切換,同時在 XOR 下將洩漏的金鑰片段與候選明文進行比對。
實作範例
在十進位欄位中輸入 255。十六進位欄位更新為 FF(開啟前綴切換則為 0xFF),二進位欄位更新為 11111111(分組後為 1111_1111),八進位欄位更新為 377。將自訂欄位的基數切換為 36,同一個數值會顯示為 73。在十進位欄位中輸入大數如 123456789012345678901234567890,十六進位欄位便會走 BigInt 路徑,渲染為 18EE90FF6C373E0EE4E3F0AD2。
FAQ
什麼是數字進位?
數字進位(或基數)是指位置系統在進入下一個位置前所使用的不同數字個數。十進位(基數 10)使用 0–9;二進位(基數 2)只使用 0 和 1;十六進位(基數 16)使用 0–9 加上 A–F。切換進位不會改變數字的值——只是改變其數字的書寫和分組方式。
為什麼程式設計中使用十六進位?
一個十六進位數字恰好對應四個二進位位元,因此兩個十六進位數字涵蓋一個位元組,八個十六進位數字涵蓋一個 32 位元字組。這使十六進位成為記憶體位址、暫存器內容、色彩三元組和密碼金鑰最緊湊的人類可讀形式。讀取 0xFF 比讀取 11111111 更快,且需要時位元模式就在眼前。
可以轉換超過 36 進位嗎?
本工具最高支援 36 進位,因為這是原生 JavaScript parseInt 和 toString API 的上限,其接受的數字字母表為 0–9 加上 A–Z。37–62 進位可使用自訂字母表(比特幣地址使用的 Base58 即為一例),但由於每種更高進位都需要自己的標準數字排列,因此將作為獨立工具追蹤。
支援負數和浮點數嗎?
負整數在每個進位中都以前置負號渲染,這與 Number.prototype.toString 的行為一致。以選定位元寬度(8、16、32、64 位)的二補數表示法是我們計劃新增的獨立檢視。浮點數進位轉換也超出本版本的範疇;本工具僅處理整數值。
進位轉換是個反覆出現在韌體、安全和圖形工作中的小任務。在瀏覽器分頁中完成這項工作,使用 Node 和 V8 內建的相同算術原語,讓工作快速完成且資料留在你的機器上。