3.2 · 數制
目標: 在十進制、二進制、十六進制之間自如雙向換算,並能完整展示過程。
課程涉及的三種數制
| 數制 | 基 | 使用數字 |
|---|---|---|
| 十進制 Denary (decimal) | 10 | 0 1 2 3 4 5 6 7 8 9 |
| 二進制 Binary | 2 | 0 1 |
| 十六進制 Hexadecimal (hex) | 16 | 0 1 2 3 4 5 6 7 8 9 A B C D E F |
會要求你在任何兩種之間、雙向換算。
位值,通用思想
任何數制都有以基數冪為單位的位值。
十進制(基 10)
| 位 | 1000 | 100 | 10 | 1 |
|---|---|---|---|---|
| 冪 | 10³ | 10² | 10¹ | 10⁰ |
| 數字 | 2 | 3 | 7 | 4 |
2 × 1000 + 3 × 100 + 7 × 10 + 4 × 1 = 2374
二進制(基 2)
| 位 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| 冪 | 2⁷ | 2⁶ | 2⁵ | 2⁴ | 2³ | 2² | 2¹ | 2⁰ |
| 數字 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
128 + 32 + 16 + 4 + 1 = 181₁₀
十六進制(基 16)
| 位 | 4096 | 256 | 16 | 1 |
|---|---|---|---|---|
| 冪 | 16³ | 16² | 16¹ | 16⁰ |
| 數字 | 0 | 2 | A | 7 |
2 × 256 + 10 × 16 + 7 × 1 = 679₁₀
速查表(0–15)
這張表你必須完全背下來。
| 十進制 | 二進制(4 位) | 十六進制 |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
十進制 → 二進制
方法 1 · 連續除 2
反覆除 2,餘數自底向上讀。
轉換 45₁₀:
45 ÷ 2 = 22 餘 1
22 ÷ 2 = 11 餘 0
11 ÷ 2 = 5 餘 1
5 ÷ 2 = 2 餘 1
2 ÷ 2 = 1 餘 0
1 ÷ 2 = 0 餘 1 ← 頂2
3
4
5
6
自底向上讀 → 101101₂。
方法 2 · 減最大的 2 的冪
| 2 的冪 | 用? | 餘 |
|---|---|---|
| 32 | ✓ | 45 − 32 = 13 |
| 16 | ✗ | 13 |
| 8 | ✓ | 13 − 8 = 5 |
| 4 | ✓ | 5 − 4 = 1 |
| 2 | ✗ | 1 |
| 1 | ✓ | 1 − 1 = 0 |
結果:101101₂。
二進制 → 十進制
把每位乘以位值再相加。
11010110₂ → 128 + 64 + 16 + 4 + 2 = 214₁₀。
技巧:相加前把位值寫在每位上方。
十進制 → 十六進制
方法 1 · 連續除 16
轉換 2750₁₀:
2750 ÷ 16 = 171 餘 14 (E)
171 ÷ 16 = 10 餘 11 (B)
10 ÷ 16 = 0 餘 10 (A) ← 頂2
3
自底向上讀 → ABE₁₆。
方法 2 · 經二進制
先轉二進制,然後每 4 位一組(從右到左)。
2750₁₀ = 1010 1011 1110₂ → A B E → ABE₁₆。
十六進制 → 十進制
把每位乘以位值再相加。
3F₁₆ = 3 × 16 + 15 × 1 = 63₁₀
二進制 ↔ 十六進制(捷徑)
這種轉換最快,因為 1 位十六 = 4 位二進。
二進制 : 1101 1010 0011 1111
D A 3 F
十六 : D A 3 F2
3
記熟 0–15 表後,兩個方向都是秒級。
轉十六前先把二進制每 4 位分組
- 從右開始分組:
11010100110₂→0110 1010 0110(前補 0)。 - 然後讀:
6 A 6→6A6₁₆。
常見換算練習
| 十進制 | 二進制 | 十六 |
|---|---|---|
| 13 | 1101 | D |
| 25 | 11001 | 19 |
| 100 | 1100100 | 64 |
| 255 | 11111111 | FF |
| 256 | 100000000 | 100 |
| 1024 | 10000000000 | 400 |
| 65535 | 1111111111111111 | FFFF |
記 255 = 0xFF 和 65535 = 0xFFFF 能省考試時間。
我需要多少位?
對無符號整數 N,所需位數是 ⌈log₂(N+1)⌉。
| 範圍 | 需要位數 |
|---|---|
| 0–1 | 1 |
| 0–3 | 2 |
| 0–7 | 3 |
| 0–15 | 4 |
| 0–255 | 8 |
| 0–1023 | 10 |
| 0–65535 | 16 |
n 位能表示 2ⁿ 個不同值。任意小 n 都應該能推得出來。
為什麼要有十六進制?
電腦是二進制的。為什麼還要十六?
- 緊湊 —— 1 位十六代替 4 位二進。
- 可讀 —— RGB 顏色
#FF8800比11111111 10001000 00000000清楚得多。 - 易位映射 —— 每位十六整齊對應 4 位二進。
- 地址標準 —— MAC 地址、IPv6、記憶體轉儲都用十六。
學生常見錯誤
- 把除法餘數從頂往下讀(應自底向上)。
- 忘了十六
A–F映射 10–15(寫A = 11是常見滑筆)。 - 二進制分 4 位組時漏前導零 —— 先補足。
- 混淆基與位數。
練習活動
不用計算器換算:
87₁₀→ 二進制、十六0xC8→ 十進制、二進制10110101₂→ 十進制、十六0xBEEF→ 二進制255₁₀ + 1→ 二進制、十六
答案
1010111₂、57₁₆200₁₀、11001000₂181₁₀、B5₁₆1011 1110 1110 1111₂100000000₂、100₁₆
考試式題目
題(4 分): (a) 把
2024₁₀換為二進制,寫出全部過程。(b) 把 (a) 的答案換為十六進制。
參考答案:
(a) 連續除 2:
2024 ÷ 2 = 1012 餘 0
1012 ÷ 2 = 506 餘 0
506 ÷ 2 = 253 餘 0
253 ÷ 2 = 126 餘 1
126 ÷ 2 = 63 餘 0
63 ÷ 2 = 31 餘 1
31 ÷ 2 = 15 餘 1
15 ÷ 2 = 7 餘 1
7 ÷ 2 = 3 餘 1
3 ÷ 2 = 1 餘 1
1 ÷ 2 = 0 餘 12
3
4
5
6
7
8
9
10
11
2024₁₀ = 11111101000₂
(b) 從右每 4 位一組(前補 0):
0111 1110 1000 → 7 E 8 → 2024₁₀ = 7E8₁₆
關鍵要點
- 三種基:10、2、16。
- 掌握十進制 → 二進制的兩種方法(連續除 + 減冪)。
- 1 位十六 = 4 位二進是最快捷徑。
- 把 0–15 在三種基下背熟。
➡️ 下一節:3.3 二進制運算與溢出