你好,未來的電腦科學家!讓我們一起掌握數據表示法!
歡迎來到電腦運作原理的神奇世界!本章節「數據表示法」至關重要,因為你在電腦上看到、聽到或輸入的一切——從串流影片到簡單的文字訊息——都必須轉換成機器能讀懂的語言。
別擔心,這聽起來可能有點複雜!我們將會利用簡單的類比和分步方法,為你拆解二進制(Binary)和十六進制(Hexadecimal)等艱澀概念。讀完這些筆記後,你將能清楚了解 0 和 1 如何轉化為絢麗的彩色圖片與動態的音樂。
為什麼數據表示法很重要?
電腦的中央處理器(CPU)是由數十億個微小的開關所組成的。這些開關只能處於兩種狀態:開啟(ON)或關閉(OFF)。這種雙態系統是所有運算的核心,稱為二進制系統(基數 2)。
1. 電腦的語言:二進制基礎
1.1 位元(Bit)、位元組(Byte)及其他單位
數據的最小單位是位元(Bit),即 Binary Digit 的簡稱。
- 一個位元只能是 0(關閉)或 1(開啟)。
- 類比:想像一個電燈開關,它不是開就是關——不可能處於「半開」狀態!
位元的組合
為了儲存有意義的資訊,位元會被組合起來:
- 半位元組(Nibble): 4 個位元(半個位元組)。
- 位元組(Byte): 8 個位元(測量字元如字母「A」的標準單位)。
你知道嗎? 儲存容量通常以 2 的冪次方來測量。雖然 1 Kilobyte (KB) 常被近似為 1,000 bytes,但在電腦科學中,它精確地等於 1,024 bytes (\(2^{10}\))。
重點摘要: 所有的數位資訊——數字、文字、影像和聲音——都是使用 0 和 1 的組合來儲存的。
2. 數字系統:十進制、二進制和十六進制
2.1 十進制(基數 10)與二進制(基數 2)
我們日常生活中使用十進制(Base 10),它使用 10 個數字(0–9)並依賴 10 的冪次方(如 \(10^0, 10^1, 10^2\) 等)。
二進制系統(Base 2)僅使用兩個數字(0 和 1),並依賴 2 的冪次方。
將二進制轉換為十進制(最多 8 位元)
要將 8 位元的二進制數字轉換為十進制,我們使用位值權重:
128 64 32 16 8 4 2 1
分步範例:將 10110010 轉換為十進制
- 在二進制數字上方寫下位值:
128 64 32 16 8 4 2 1
1 0 1 1 0 0 1 0 - 將出現「1」對應的位值加起來:
\(128 + 0 + 32 + 16 + 0 + 0 + 2 + 0\) - 計算總和:
\(128 + 32 + 16 + 2 = 178\)
因此,二進制的 10110010 等於十進制的 178。
將十進制轉換為二進制
我們使用權重法(找出能放進該數字的最大 2 的冪次方)。
分步範例:將 201 轉換為二進制
- 從 201 開始。128 放得進去嗎?可以(記為 1)。
\(201 - 128 = 73\) - 64 能放進 73 嗎?可以(記為 1)。
\(73 - 64 = 9\) - 32 能放進 9 嗎?不行(記為 0)。
- 16 能放進 9 嗎?不行(記為 0)。
- 8 能放進 9 嗎?可以(記為 1)。
\(9 - 8 = 1\) - 4 能放進 1 嗎?不行(記為 0)。
- 2 能放進 1 嗎?不行(記為 0)。
- 1 能放進 1 嗎?可以(記為 1)。
\(1 - 1 = 0\)(餘數為 0 時停止)
結果得到的 8 位元數字為 11001001。
2.2 十六進制(Base 16)
十六進制(Hexadecimal, Hex)使用 16 個符號:數字 0–9 以及字母 A–F(代表十進制的 10–15)。
為什麼要使用十六進制? 這能省下很多時間! 長串的二進制(例如 16 位元)對人類來說很難閱讀和記憶。十六進制就像是二進制數據的精簡速記。
由於 \(2^4 = 16\),4 位元的二進制剛好可以用 1 個十六進制數字完全表示。
十六進制轉換表
| 十六進制 | 十進制 | 二進制 (4-bit) |
|---|---|---|
| 9 | 9 | 1001 |
| A | 10 | 1010 |
| B | 11 | 1011 |
| F | 15 | 1111 |
將二進制轉換為十六進制
這是最簡單的轉換!只需從右側開始,將二進制字串每 4 個位元分為一組(半位元組)。
分步範例:將 11010110 轉換為十六進制
- 將位元組拆分為兩個半位元組:1101 和 0110。
- 轉換第一個半位元組 (1101):
\(8 + 4 + 0 + 1 = 13\)。十進制 13 在十六進制中為 D。 - 轉換第二個半位元組 (0110):
\(0 + 4 + 2 + 0 = 6\)。十進制 6 在十六進制中為 6。 - 結合數字:該十六進制數字為 D6。
快速複習: 二進制、十進制和十六進制之間的轉換非常重要。請練習使用 128-64-32-16-8-4-2-1 表,直到你可以快速完成運算!
3. 表示文字與字元
電腦無法直接儲存字母「A」。相反,它儲存的是代表「A」的二進制編碼。這些編碼由稱為字元集(Character Sets)的標準所定義。
3.1 ASCII (美國資訊交換標準代碼)
ASCII 是最早且最廣泛使用的字元集之一。它最初使用 7 個位元來表示 128 個字元 (\(2^7 = 128\))。
- 這涵蓋了所有大小寫字母、數字 0–9 以及基本標點符號。
- 範例: 大寫字母「A」由十進制數字 65 表示(在 8 位元二進制中為 01000001)。
常見錯誤: 不要把字元「1」(它有自己的 ASCII 碼)與二進制數字 1 混淆。
3.2 Unicode
ASCII 的局限性在於它僅支援基本的英文和西方字元。
Unicode 的開發就是為了克服這個問題。它每個字元使用 16 位元或更多(高達 32 位元),允許表示數以百萬計的唯一字元。
- 這包括世界各地的語言(中文、阿拉伯文、印地文)以及特殊符號,包括表情符號(Emojis)!
- 優點: Unicode 讓軟體和網頁在世界各地都能正確顯示,無論使用什麼語言。
重點摘要: ASCII 對於英文文字(8 位元)很有效率,而 Unicode 對於全球通訊和龐大的字元集(16/32 位元)則是必要的。
4. 表示圖像(位圖 Bitmap)
最常見的圖像(如 JPEG 或 BMP)是以位圖(Bitmaps)形式儲存的。將位圖影像想像成一個由微小彩色方塊組成的巨大網格。
4.1 像素(Pixels)與解析度(Resolution)
- 像素(Pixel),即圖像元素,是數位影像中最小的單一色彩點。
- 解析度(Resolution)是指圖像中的像素數量,通常以寬 x 高來測量(例如 1920 x 1080)。
4.2 色彩深度(Colour Depth)
色彩深度(有時稱為位元深度)是儲存單個像素色彩資訊所使用的位元數。
可能的色彩數量使用以下公式計算:\(2^N\)(其中 N 是以位元為單位的色彩深度)。
- 1-bit 深度: \(2^1 = 2\) 種顏色(例如黑白)。
- 8-bit 深度: \(2^8 = 256\) 種顏色。
- 24-bit 深度: \(2^{24} \approx 1670\) 萬種顏色(稱為「真彩色/全彩」)。
類比:色彩深度就像你的調色盤大小。位元深度越高,意味著你的圖片能使用的色調和色彩就越豐富。
4.3 計算影像檔案大小(未壓縮)
要計算未壓縮的位圖影像佔用多少空間,請使用以下公式:
$$ \text{檔案大小 (bits)} = \text{解析度 (寬} \times \text{高)} \times \text{色彩深度 (bits)} $$
分步範例: 計算一張 100 x 50 像素、色彩深度為 24-bit 的影像大小。
- 計算總像素(解析度):\(100 \times 50 = 5,000\) 像素。
- 計算總位元數:\(5,000 \times 24 \text{ bits/pixel} = 120,000\) bits。
- 轉換為位元組(除以 8):\(120,000 / 8 = 15,000\) bytes。
重點摘要: 更高的解析度(更多像素)和更高的色彩深度(每個像素更多位元)都會導致檔案變大,但影像品質也會更好。
5. 表示聲音
現實世界中的聲音是類比(Analogue)的(平滑且連續的波)。電腦需要透過一個稱為採樣(Sampling)的過程,將其轉換為數位(Digital)數據(離散的 0 和 1)。
5.1 採樣過程
採樣是以固定的時間間隔測量聲波的振幅(Amplitude)(響度)。
兩個因素決定了數位化聲音的品質和大小:
A. 採樣率(Sample Rate 或 Sampling Frequency)
這是每秒採樣(測量)的次數。它以赫茲(Hz)或千赫茲(kHz)為單位。
- 對品質的影響: 較高的採樣率代表電腦測量聲波的頻率更高,能更準確地重現原始聲音(品質更好)。
- 標準範例: CD 品質的音訊使用 44,100 Hz (44.1 kHz) 的採樣率。
B. 位元深度(Bit Depth 或 Sample Resolution)
這是用於儲存每個個別採樣點振幅值的位元數。
- 對品質的影響: 較高的位元深度允許紀錄更大範圍的可能振幅級別,從而產生更精確、動態範圍更廣且背景噪音更小的聲音。
5.2 計算聲音檔案大小(未壓縮)
音訊檔案的大小取決於持續時間、採樣率和位元深度。(注意:此公式假設為單聲道,非立體聲。)
$$ \text{檔案大小 (bits)} = \text{採樣率 (Hz)} \times \text{位元深度 (bits)} \times \text{時間 (秒)} $$
分步範例: 計算 10 秒單聲道音訊的檔案大小(以位元組為單位),採樣率為 20,000 Hz,位元深度為 16-bit。
- 計算總位元數:
\(20,000 \times 16 \times 10 = 3,200,000\) bits。 - 轉換為位元組(除以 8):
\(3,200,000 / 8 = 400,000\) bytes。
重點摘要: 高採樣率和高位元深度都能創造高品質的音訊檔案,但也會導致檔案體積大幅增加。
快速複習總結
| 數據類型 | 核心概念 | 測量單位 | 對檔案大小的影響 |
|---|---|---|---|
| 數字 | 二進制 (Base 2), 十六進制 (Base 16) | 位元 / 位元組 | 更多位元 = 數字範圍更大 |
| 文字 | 字元集 (ASCII, Unicode) | 每個字元的位元數 | Unicode (16/32 位元) 比 ASCII (8 位元) 大 |
| 影像 | 解析度, 色彩深度 | 像素, 每個像素的位元數 | 更高的解析度和深度 = 更大檔案 |
| 聲音 | 採樣率, 位元深度 | 赫茲 (Hz), 每個採樣的位元數 | 更高的速率和深度 = 更大檔案 |
現在你已經掌握了電腦內部如何儲存所有資訊的精髓!繼續練習這些轉換,你一定能在這一章拿到高分!