A1.2 資料表示與電腦邏輯
資料表示與電腦邏輯(Data representation and computer logic)說明電腦如何只用 0 與 1 表示數字、文字、圖片與聲音,以及如何用邏輯閘組合出運算電路。本頁涵蓋進位轉換、二補數、字元編碼、多媒體表示、布林運算與真值表。
二進位與十六進位怎麼轉換?
- 位元(bit):一個 0 或 1。位元組(byte):8 個位元,可表示 28 = 256 種值。
- 二進位(binary,base 2):每一位代表 2 的次方。
- 十六進位(hexadecimal,base 16):用 0–9 與 A–F,每 1 位對應 4 個位元,常用來簡寫二進位(例如色碼
#FF8800、記憶體位址)。
| 十進位 | 二進位 | 十六進位 |
|---|---|---|
| 10 | 0000 1010 | 0A |
| 45 | 0010 1101 | 2D |
| 200 | 1100 1000 | C8 |
| 255 | 1111 1111 | FF |
十進位轉二進位:不斷除以 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 → 101101。
二進位轉十六進位:從右邊每 4 位一組。0010 1101 → 2 與 D → 2D。
負數如何用二補數表示?
二補數(two's complement)是電腦表示有號整數的標準方法:最高位元的權重是 負的。8 位元時,最高位權重是 −128,可表示範圍為 −128 到 127。
把正數轉成對應負數的步驟:反轉所有位元,再加 1。
二補數的好處是加法電路可以同時處理正負數,減法 A − B 只要算 A + (−B)。
溢位(overflow)
8 位元二補數計算 100 + 50 會得到超過 127 的結果,最高位被進位成 1,被誤讀為負數。這種結果超出可表示範圍的情況稱為溢位。
文字如何編碼?
- ASCII:7 位元,128 個字元,只涵蓋英文字母、數字與符號。
A= 65。 - Unicode:為全世界文字指定唯一碼位(code point),例如「中」是 U+4E2D。常見編碼方式 UTF-8 用 1 到 4 個位元組儲存一個字元,並與 ASCII 相容。
圖片與聲音如何數位化?
點陣圖(bitmap):影像由像素組成,每個像素的顏色用 色彩深度(color depth) 個位元表示。
檔案大小(bits)= 寬 × 高 × 色彩深度
例如 1920 × 1080、24 位元色彩:1920 × 1080 × 24 = 49,766,400 bits ≈ 6.2 MB(未壓縮)。
聲音:以固定頻率對類比聲波 取樣(sampling)。
檔案大小(bits)= 取樣率 × 位元深度 × 聲道數 × 秒數
取樣率(sample rate)越高、位元深度(bit depth)越大,音質越接近原音,但檔案也越大。
壓縮有哪兩種?
- 無失真壓縮(lossless):解壓縮後完全還原,例如 PNG、ZIP、FLAC。適合文字與程式。
- 失真壓縮(lossy):捨棄人類不易察覺的資訊,壓縮率高,例如 JPEG、MP3、MP4。
布林邏輯與邏輯閘
邏輯閘(logic gate)是對位元進行布林運算的電路,所有 CPU 運算最後都由它們組成。
| A | B | AND | OR | XOR | NAND | NOR |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 |
NOT 只有一個輸入,輸出相反值。NAND 與 NOR 稱為 萬用閘(universal gate),只用其中一種就能組出所有其他邏輯閘。
如何從邏輯運算式畫出真值表?
以 X = (A AND B) OR (NOT C) 為例:列出 A、B、C 所有 23 = 8 種組合,先算括號內,再算 OR。
| A | B | C | A AND B | NOT C | X |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 |
HL 延伸:簡化邏輯運算式
HL 學生應能用布林代數定律或卡諾圖(Karnaugh map)簡化運算式,例如 A AND (A OR B) = A(吸收律)、NOT(A AND B) = (NOT A) OR (NOT B)(De Morgan 定律)。請以課堂與官方課綱對簡化方法的要求為準。
推薦影音
用二進位表示數字與文字
簡述:說明位元、位元組、二進位計數、浮點數與 ASCII/Unicode,對應本頁前半段的數字與文字編碼。
二補數:二進位的負數
簡述:Ben Eater 從「為什麼不用符號位元」開始,推導出二補數的設計理由,看完會真正理解「反轉加 1」為什麼成立。
布林邏輯與邏輯閘
簡述:從電晶體開始介紹 NOT、AND、OR、XOR 如何組成,並說明布林代數,對應本頁邏輯閘與真值表一節。
資料壓縮
簡述:介紹游程編碼、霍夫曼編碼等無失真壓縮,以及 JPEG、MP3 的失真壓縮原理,對應本頁壓縮一節。
練習題
練習 1:進位轉換
把十進位 173 轉成二進位與十六進位。
參考答案
173 = 128 + 32 + 8 + 4 + 1 → 1010 1101;每 4 位一組:1010 = A、1101 = D → AD。
練習 2:二補數
8 位元二補數 1110 0110 代表的十進位數字是多少?
參考答案
−128 + 64 + 32 + 4 + 2 = −26。也可以反轉加 1:0001 1001 + 1 = 0001 1010 = 26,所以原數為 −26。
練習 3:圖片檔案大小
一張 800 × 600、色彩深度 16 位元的未壓縮圖片有多少 KB?(1 KB = 1024 bytes)
參考答案
800 × 600 × 16 = 7,680,000 bits;÷ 8 = 960,000 bytes;÷ 1024 ≈ 937.5 KB。
練習 4:真值表
畫出 Y = NOT(A OR B) AND C 的真值表,並找出 Y = 1 的組合。
參考答案
只有 A = 0、B = 0、C = 1 時,NOT(A OR B) = 1 且 C = 1,Y = 1;其他 7 種組合 Y 都是 0。
HL 練習:De Morgan 定律
用 De Morgan 定律改寫 NOT(A OR NOT B)。
參考答案
NOT(A OR NOT B) = (NOT A) AND (NOT NOT B) = (NOT A) AND B。