🔢 進制轉換器

進制轉換

 怎麼用

在任一進制欄位輸入,其他欄位即時同步。支援負數(開頭加 −)與小數;二進位會自動每 4 位分組方便閱讀;超過 53 位元的大整數以 BigInt 處理,不會悄悄失去精度——這是許多線上轉換器的通病。

 實戰一:CSS 色碼 #FF5733 拆成 RGB

網頁色碼 #RRGGBB 是三組兩位十六進制。以 #FF5733 為例:

  1. 拆成 FF(紅)、57(綠)、33(藍)
  2. 逐組丟進十六進制欄:FF → 255、57 → 87、33 → 51
  3. 得到 rgb(255, 87, 51),一個橘紅色

反向也一樣:想把 rgb(29, 161, 242) 寫成色碼,把 29、161、242 依序輸入十進制欄,得 1D、A1、F2 → #1DA1F2

 實戰二:看懂 chmod 755

Linux 檔案權限的每一碼都是一個八進制數字,展開成 3 個 bit 對應「讀 r /寫 w /執行 x」:

八進制二進制權限
7111rwx(擁有者常用)
5101r-x(可讀可執行、不可寫)
4100r--(唯讀)
6110rw-(可讀寫、不可執行)

所以 chmod 755 = 擁有者 rwx、群組 r-x、其他人 r-x;644 = 擁有者可讀寫、其他人唯讀。在八進制欄輸入任何一碼,看二進制欄就能自行驗證。

 常見問題

十六進制的 A–F 是什麼?

Base 16 需要 16 個符號,0–9 不夠用,借字母補:A=10、B=11⋯F=15。所以 FF = 15×16 + 15 = 255,正好是一個 byte 的最大值。

為什麼工程師用十六進制不用二進制?

4 個 bit 恰好等於 1 個 hex 字元(1111 = F),十六進制就是二進制的緊湊寫法。一個 32 位元位址用二進制要 32 個字、hex 只要 8 個字。

小數轉二進制為什麼會很長?

十進制的 0.1 在二進制是無限循環小數(0.000110011…),無法精確表示——這正是程式裡 0.1 + 0.2 ≠ 0.3 的原因。本工具會截到合理位數顯示。

輸入很長的二進制數會不會算錯?

不會。一般 JavaScript 的 parseInt 在超過 53 位元時會悄悄失真,本工具改用 BigInt 逐字元解析,任意長度的整數都精確(小數部分仍受浮點數限制)。