進位轉換器

二進位、八進位、十進位、十六進位即時互轉,支援超大整數、負數與小數,並附上二補數與手算步驟。

01

輸入任一欄,其他欄位即時換算

可輸入負號、小數點、空白、底線(1111_0000)與 0b/0o/0x 前綴

二進位顯示
十六進位大小寫
N

自訂進位(2–36 進位)

與上方共用同一個數值;超過 9 的數字依序用 A–Z 表示

73
十進位數值
255
最少需要的位元數8 bit含正負號(二補數)至少 9 bit
8 位元二進位(1 個位元組)1111 1111
二補數表示(有號整數)
  • 8 位元超出範圍,8 位元有號整數放不下
  • 16 位元0000 0000 1111 1111(十六進位 00FF)
  • 32 位元0000 0000 0000 0000 0000 0000 1111 1111(十六進位 000000FF)
?

計算步驟

十進位 → 二進位:除以 2 取餘數

把 255 一直除以 2,直到商變成 0,再把餘數「由下往上」讀出來。

算式商餘數
255 ÷ 21271
127 ÷ 2631
63 ÷ 2311
31 ÷ 2151
15 ÷ 271
7 ÷ 231
3 ÷ 211
1 ÷ 201
餘數由下往上讀:1111 1111

二進位 → 十進位:各位數 × 2 的次方相加

最右邊那一位是 2⁰(也就是 1),每往左一位,次方就加 1。

1×2⁷ + 1×2⁶ + 1×2⁵ + 1×2⁴ + 1×2³ + 1×2² + 1×2¹ + 1×2⁰
= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= 255

進位轉換器:二進位、八進位、十進位、十六進位一次換算

這個進位轉換器有四個欄位,在任何一欄輸入數字,另外三欄會立刻換算出來,不需要按按鈕。 它用大整數運算,所以 64 位元、256 位元甚至更長的數字都不會失真; 也支援負數、帶小數點的數字,以及 2 到 36 之間任意進位的互轉。 下方還會顯示這個數字需要幾個位元、對應的 ASCII 字元、8/16/32 位元的二補數, 以及適合學生對照的手算步驟。所有運算都在瀏覽器中完成,輸入的內容不會上傳。

什麼是進位制?

進位制是「數到多少就要進一位」的規則。我們平常用的十進位有 0 到 9 共十個數字, 數到 10 就進位,每一位代表 10 的次方:345 就是 3×100+4×10+5×1。 二進位只有 0 和 1,每一位代表 2 的次方;八進位用 0 到 7,每一位代表 8 的次方; 十六進位用 0 到 9 再加上 A 到 F(A=10、B=11、C=12、D=13、E=14、F=15),每一位代表 16 的次方。 同一個數量可以用不同進位寫出來,例如十進位的 255,寫成二進位是 11111111、八進位是 377、十六進位是 FF。

為什麼電腦用二進位?十六進位又為什麼常見?

電腦的電路最容易分辨的是「有電」和「沒電」兩種狀態,剛好對應 1 和 0, 所以電腦內部的資料全部用二進位儲存,一個 0 或 1 稱為一個位元(bit),8 個位元是一個位元組(byte)。 但是二進位寫起來很長、容易看錯,於是工程師習慣改用十六進位來讀寫: 因為 16=2 的 4 次方,一個十六進位數字剛好等於 4 個位元, 一個位元組就能寫成兩個十六進位數字。

網頁色碼就是最常見的例子:#FF8800 拆成 FF、88、00 三組, 分別是紅 255、綠 136、藍 0。記憶體位址、MAC 位址、檔案的雜湊值也都習慣用十六進位表示。

手算互轉的方法與算例

十進位轉二進位用「短除法」:一直除以 2 並記下餘數,直到商是 0,再把餘數由下往上讀。 以 156 為例:156÷2=78 餘 0、78÷2=39 餘 0、39÷2=19 餘 1、19÷2=9 餘 1、 9÷2=4 餘 1、4÷2=2 餘 0、2÷2=1 餘 0、1÷2=0 餘 1, 由下往上讀得到 10011100。

二進位轉十進位用「位值展開」:把每一位乘上對應的 2 的次方再相加。 10011100=1×128+0×64+0×32+1×16+1×8+1×4+0×2+0×1=128+16+8+4=156,和原本的數字相符。 二進位轉十六進位更簡單,從右邊每 4 位分一組:1001 是 9、1100 是 C,所以 156 的十六進位是 9C; 每 3 位分一組則得到八進位:010、011、100 分別是 2、3、4,也就是 234。

小數部分則改成「乘以 2 取整數」:0.625×2=1.25 取 1、0.25×2=0.5 取 0、0.5×2=1.0 取 1, 由上往下讀是 0.101,所以十進位 10.625 等於二進位 1010.101。

如何使用進位轉換器?

  1. 在二進位、八進位、十進位或十六進位任一欄輸入數字,其他欄位會即時更新。
  2. 需要負數時在最前面加上負號,或按「切換正負號」;小數直接輸入小數點即可。
  3. 按欄位旁的「複製」取得結果;二進位可選擇是否每 4 位元分組,十六進位可切換大小寫。
  4. 要換算其他進位(例如 3 進位或 36 進位)時,在「自訂進位」選擇來源與目標進位。
  5. 往下可以看到位元數、ASCII 字元、二補數,以及除以 2 取餘數的計算步驟。

二補數是什麼?

二補數是電腦表示負整數最常用的方式。在固定的位元寬度下,把正數的每個位元 0 變 1、1 變 0,再加 1, 就得到對應的負數。以 8 位元為例:5 是 00000101,全部反轉得到 11111010,加 1 之後是 11111011,這就是 -5。 8 位元二補數能表示的範圍是 -128 到 127,其中 -1 是 11111111、-128 是 10000000、127 是 01111111。 這種表示法的好處是加法和減法可以共用同一套電路。

實用提醒

輸入時可以加上空白或底線幫助閱讀(例如 1111_0000),也可以直接貼上帶有 0b、0o、0x 前綴的寫法,工具會自動略過。 小數部分最多顯示 32 位,如果無法精確表示,結果下方會註明「已截斷」。 計算步驟只在整數且不超過 6 位數時顯示,避免表格過長。

進位轉換器常見問題

十進位怎麼轉二進位?

用短除法:把數字一直除以 2 並記下餘數,直到商變成 0,再把餘數由下往上讀。 例如 156 會得到 10011100。在十進位欄輸入數字後,頁面下方的「計算步驟」會列出每一步。

為什麼十六進位的一個數字剛好等於 4 個位元?

因為 16 等於 2 的 4 次方,4 個位元剛好能表示 0 到 15 共 16 種組合。 所以二進位每 4 位可以直接換成 1 個十六進位數字,例如 1101 0110 就是 D6(十進位 214)。

負數的二進位怎麼表示?

上方四個欄位採用數學寫法,直接在前面加負號,例如 -255 是 -11111111、-FF。 電腦實際儲存時多半使用二補數,工具會在額外資訊區另外列出 8、16、32 位元的二補數。

為什麼 0.1 轉成二進位會顯示「已截斷」?

0.1 在二進位是無限循環小數 0.000110011001…,永遠寫不完,所以只顯示前 32 位。 只有分母是 2 的次方的小數,例如 0.5、0.25、0.625,才能用二進位精確表示。 這也是程式裡 0.1+0.2 不會剛好等於 0.3 的原因。