歡迎來到數據表示法!

你有沒有想過,電腦本質上只是一堆微小的開關,它是如何呈現高清電影,或記錄你在遊戲中的高分呢?這一切都要歸功於數據表示法(Data Representation)。在本章中,我們將學習電腦如何將人類的數字和文字世界,轉換成它們自己的語言:二進制(Binary)

別擔心,如果你覺得數字有點嚇人——我們會把所有內容拆解成簡單的步驟。把它想像成學習一種秘密代碼吧!


1. 三種數制

為了理解電腦,我們需要認識三種特定的「語言」或數制:

A. 十進制 (Denary / Base-10)

這是我們每天使用的「人類」系統(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)。我們使用 10 個數字是因為我們有 10 根手指!

B. 二進制 (Binary / Base-2)

這是「電腦」系統。它只使用兩個數字:01
類比:想像一個電燈開關。它只能是關閉(0)或開啟(1)。電腦是由數十億個這種微小的開關組成的。

C. 十六進制 (Hexadecimal / Base-16)

這個系統使用 16 個符號。由於我們在 9 之後數字就不夠用了,所以我們使用字母:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (10), B (11), C (12), D (13), E (14), F (15)
為什麼要用十六進制? 它比二進制短得多,對人類來說更容易閱讀且不容易出錯。

快速回顧:
- 十進制: 人類使用 (0-9)
- 二進制: 電腦使用 (0-1)
- 十六進制: 人類方便使用的速記法 (0-F)


2. 數制轉換

能夠進行數制轉換是 GCE O-Level 電腦科的核心技能。讓我們一步步來學習如何操作。

二進制轉十進制

要將二進制轉換為十進制,我們使用位值表(Place Value Table)。在二進制中,每向左移動一位,數值就會加倍。

範例:將 10110010 轉換為十進制
1. 畫出表格(從右邊的 1 開始,向左移動時數值加倍):

\( \begin{array}{|c|c|c|c|c|c|c|c|}\n\hline\n128 & 64 & 32 & 16 & 8 & 4 & 2 & 1 \\\n\hline\n1 & 0 & 1 & 1 & 0 & 0 & 1 & 0 \\\n\hline\n\end{array} \)

2. 將下方對應數字為 '1' 的數值加起來:
\( 128 + 32 + 16 + 2 = 178 \)

十進制轉二進制

使用減法法(Subtraction Method)
口訣:「找出能容納的最大值」。

範例:將 75 轉換為二進制
1. 128 能放入 75 嗎?不能 (0)
2. 64 能放入 75 嗎?能!(1)。餘數:\( 75 - 64 = 11 \)
3. 32 能放入 11 嗎?不能 (0)
4. 16 能放入 11 嗎?不能 (0)
5. 8 能放入 11 嗎?能!(1)。餘數:\( 11 - 8 = 3 \)
6. 4 能放入 3 嗎?不能 (0)
7. 2 能放入 3 嗎?能!(1)。餘數:\( 3 - 2 = 1 \)
8. 1 能放入 1 嗎?能!(1)。餘數:0
結果:01001011

十六進制轉二進制

這是最簡單的!每個十六進制位數正好等於 4 個二進制位元(bits)(稱為一個半字節 nibble)。

範例:將 2A 轉換為二進制
1. 將 '2' 轉換為 4 位二進制:0010
2. 將 'A' (即 10) 轉換為 4 位二進制:1010
3. 合併在一起:00101010

關鍵提示: 做二進制轉換時一定要使用表格!這能防止簡單的加法錯誤。


3. 二補數 (Two's Complement - 負數表示法)

一般的二進制只能表示正數。為了表示負數,我們使用二補數(Two's Complement)
剛開始覺得複雜別擔心;只要遵循「反轉並加 1」的規則即可!

如何將正數轉換為負數(例如:-5):

1. 先寫出該正數的二進制版本(使用 8 位元):
\( 5 = 00000101 \)

2. 反轉(Flip)所有位元(0 變 1,1 變 0):
\( 11111010 \)

3. 將結果加 1
\( 11111010 + 1 = 11111011 \)
結果:11111011 代表 -5。

為什麼要這樣做?

在二補數中,最高位元(Most Significant Bit,最左邊的那一位)充當負號。在 8 位元系統中,第一欄實際上是 -128 而不是 +128。

快速回顧:
1. 寫出正數的二進制。
2. 反轉位元。
3. 加 1。


4. 文字表示法 (ASCII)

電腦不知道字母 'A' 是什麼,它們只認識數字。因此,我們使用一本「代碼本」叫做 ASCII (美國標準資訊交換碼)。

8 位元擴展 ASCII

8 位元擴展 ASCII 中,每個字元(字母、數字或符號)都被分配一個 0 到 255 之間的唯一數字。

運作方式:
- 當你在鍵盤上按下 'A' 時,電腦看到的是十進制數字 65
- 然後它將 65 轉換為二進制:01000001
- 這串二進制代碼就是儲存在記憶體中的內容。

你知道嗎?大寫 'A' (65) 和小寫 'a' (97) 之間的差值正好是 32。這使得電腦只需改變一個位元,就能輕鬆在大小寫之間切換!

文字表示法總結:
  • 字元使用 ASCII 標準對應到數字。
  • 8 位元編碼意味著我們可以表示 \( 2^8 \) (256) 種不同的字元。
  • 這包括英文字母、標點符號和特殊符號。

章節總結 - 核心重點

1. 二進制 是電腦使用的基於 2 的系統(由 0 和 1 組成)。

2. 十六進制 是基於 16 的系統,使用它是因為它比長串的二進制更容易讓人閱讀和書寫。

3. 數制轉換 最好使用位值表(1, 2, 4, 8, 16, 32, 64, 128)來完成。

4. 二補數 是在二進制中表示負數的方法。記住:反轉並加 1。

5. ASCII 是標準「代碼」,讓電腦能將文字表示為二進制數字。

要避免的常見錯誤: 在做二補數時,許多學生會忘記在最後加 1。最後一步一定要再三檢查!