這個轉換器能做什麼
這項工具可在電腦領域最常見的四種數系之間,換算一個整數:二進位(base 2)、八進位(base 8)、十進位(base 10)與十六進位(base 16)。只要輸入任意數值,並告訴計算器該數字是以哪種進位制書寫,它就會一次回傳這四種數系的對應表示法。
使用方式
在數值欄位輸入你的數字,從下拉選單選擇來源進位制,再讀取結果即可。輸入十六進位時,可使用 0-9 與字母 A-F(不分大小寫),而開頭的 0x 或 0b 前綴會被自動去除。若某個數字不符合所選進位制的規則,結果會自動歸零。
公式說明
要把一個數讀成十進位,會將每一位數乘以「底數的位次次方」(從最右邊的第 0 位開始計算),再把所有乘積相加:
$$\text{數值} = \sum_{i=0}^{k-1} d_i \cdot \text{base}^{\,i}$$要反向轉換,則是把十進位數值不斷除以目標底數;每次的餘數就是一位數字,將這些餘數由最後算出的往最先算出的順序讀回去,就是轉換後的數字。
實例演算
以二進位 1111 為例。換算成十進位是
再把 15 轉成十六進位:\(15 \div 16 = 0\) 餘 \(15\),而 15 對應的數字為 F。換成八進位:\(15 \div 8 = 1\) 餘 \(7\),因此結果是 17。
常見進制等價表
計算中使用的四種位置記數系統共享相同的值——只有基數(進制)不同。十進制(基數 10)是日常使用的系統;二進制(基數 2)是資料的物理儲存方式;八進制(基數 8)和十六進制(基數 16)是分組位元的緊湊簡記法。下表列出了所有四種系統中最常見的值。
| 十進制(基數 10) | 二進制(基數 2) | 八進制(基數 8) | 十六進制(基數 16) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
注意 255(一個 8 位位元組能保有的最大值)在二進制中是八個 1,在十六進制中是 FF,而 256 需要第九位。這些邊界值在顏色、記憶體大小和網路遮罩中經常出現。
主要術語詳解
- 基數/進制
- 系統使用的不同數字符號的數量,以及當你向左移動時每個位置被乘以的值。十進制的基數是 10(數字 0–9),二進制基數是 2(0–1),八進制基數是 8(0–7),十六進制基數是 16(0–9 然後 A–F)。位置 \(i\) 上的數字 \(d_i\) 對總值的貢獻是 \(d_i \cdot \text{base}^{\,i}\)。
- 位元
- 一個二進制數字——最小的資料單位,保有單個 0 或 1。\(n\) 個位元可以表示 \(2^n\) 個不同的值。
- 半位元組
- 4 個位元的組合。半位元組保有 \(2^4 = 16\) 個值,正好是一個十六進制數字(0–F)。這就是為什麼十六進制與二進制對應得這麼整齊——每個十六進制數字就是一個半位元組。
- 位元組
-
8 個位元的組合(兩個半位元組),表示 \(2^8 = 256\) 個值,從 0 到 255。一個位元組寫成兩個十六進制數字,例如
FF= 255。 - 最高有效數字(MSD)
- 最左邊的數字,具有最大的位置權重(基數的最高次冪)。在二進制中是最高有效位元(MSB)。
- 最低有效數字(LSD)
- 最右邊的數字,權重最小(\(\text{base}^0 = 1\))。在二進制中是最低有效位元(LSB),決定了一個值是奇數還是偶數。
- 0b 前綴
-
一個約定(用於 C、Python 等),標記一個字面值為二進制,例如
0b1010表示十進制 10。0b只是記號,不是值的一部分。 - 0x 前綴
-
十六進制字面值的標準標記,例如
0xFF表示十進制 255。八進制通常用前導0或0o前綴表示。 - 十六進制數字 A–F
-
因為十六進制需要 16 個符號,但只有 0–9 作為普通數字,字母 A–F 表示值 10–15:
A=10、B=11、C=12、D=13、E=14、F=15。它們可以用大寫或小寫形式書寫。
常見問題
能處理十六進位的字母嗎?可以——十六進位接受 A–F(大小寫皆可)。
可以換算負數或小數嗎?不行,這個轉換器只支援非負整數。
為什麼我的十進位答案會有千分位逗號?那是為了方便閱讀而加上的;至於二進位、八進位與十六進位的輸出,因為屬於位置編碼,所以不會顯示分隔符號。