歡迎來到數據表示法!
你有沒有想過,電腦本質上只是一堆微小的開關,它是如何呈現高清電影,或記錄你在遊戲中的高分呢?這一切都要歸功於數據表示法(Data Representation)。在本章中,我們將學習電腦如何將人類的數字和文字世界,轉換成它們自己的語言:二進制(Binary)。
別擔心,如果你覺得數字有點嚇人——我們會把所有內容拆解成簡單的步驟。把它想像成學習一種秘密代碼吧!
1. 三種數制
為了理解電腦,我們需要認識三種特定的「語言」或數制:
A. 十進制 (Denary / Base-10)
這是我們每天使用的「人類」系統(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)。我們使用 10 個數字是因為我們有 10 根手指!
B. 二進制 (Binary / Base-2)
這是「電腦」系統。它只使用兩個數字:0 和 1。
類比:想像一個電燈開關。它只能是關閉(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 開始,向左移動時數值加倍):
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。最後一步一定要再三檢查!