跳轉至

建立 2026-11-12 更新 2026-11-12 SL HL

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。

+45  = 0010 1101
反轉 = 1101 0010
加 1 = 1101 0011  → −45
驗證:−128 + 64 + 16 + 2 + 1 = −45

二補數的好處是加法電路可以同時處理正負數,減法 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。