內容已複查
31 分鐘 · 6 張概念卡 · 0 題對應考古題

進位、布林邏輯與數位電路:從位元到狀態

本頁為依教材與考古題整理的原創摘要;考古題答案經技術覆核,但不是官方答案。

考古題證據邊界: 進位與位元運算、布林代數、數位電路在 canonical metadata 皆為 0 題 direct primary refs;本課是 reviewed-source-backed foundational coverage,pastPaperRefs 保持空陣列,不以相鄰題冒充直接證據。

第一次接觸也沒關係

這堂先懂這些詞

先記住白話意思,不必急著背英文。看到正文時,再把正式名稱接回來。

布林邏輯

也會看到:Boolean logic、AND、OR、NOT

只用真與假來組合條件與決策的邏輯系統。

生活例子:
門禁規則可以是「有卡 AND 密碼正確」才開門。
別搞混:
AND、OR 是邏輯關係,不等同日常語言中模糊的「和/或」。

組合與循序電路

也會看到:combinational circuit、sequential circuit

組合電路只看當下輸入;循序電路還會受先前保存的狀態影響。

生活例子:
自動門感應器像只看當下輸入,電梯控制則必須記得目前樓層。
別搞混:
有多個邏輯閘不代表就是循序電路;是否保存狀態才是關鍵。

多工器與正反器

也會看到:multiplexer、MUX、flip-flop、adder

Adder 做二進位加法,MUX 從多個輸入選一個,flip-flop 則保存一個位元狀態。

生活例子:
像計算機負責相加、轉接器選一條訊號、開關記住開或關。
別搞混:
MUX 本身不負責長期儲存,flip-flop 也不是一般軟體變數。

進位與位元運算

也會看到:binary、hexadecimal、bitwise operation、二進位、十六進位

二進位用 0、1 表示數值,十六進位用 0 到 F 縮寫位元;位元運算則逐位套用 AND、OR、NOT 等規則。

生活例子:
像四個電燈開關可用 0101 記錄狀態,也可縮寫成十六進位的 5。
別搞混:
進位轉換只改寫法,不改數值;位元 AND 也不同於一般算術乘法。

暫存器

也會看到:register、CPU register

CPU 內極小但極快、用來暫放眼前資料與狀態的儲存位置。

生活例子:
像廚師手邊的小碟子,只放當下馬上要用的材料。
別搞混:
不是一般記憶體,也不是硬碟;容量小得多但速度快。

從二進位與十六進位轉換出發,用真值表與 De Morgan 定律化簡邏輯,再把 gates 組合為 adder、multiplexer 與具狀態的 flip-flop。本範圍為完整主題樹所需的基礎課,不宣稱是考古高頻。

先抓住這幾件事

  • 在二進位、十進位與十六進位間轉換,並執行基本 bitwise operations
  • 由真值表計算 Boolean expression,並套用 De Morgan 定律
  • 區分 combinational circuit 與 sequential circuit
  • 說明 adder、multiplexer、flip-flop 與 register 的核心功能

先想像這個場景

舞台燈光控制台

一個舞台用開關編碼燈光模式:控制台把模式號碼寫成位元,透過邏輯門決定哪些燈亮,並用鎖存狀態記住上一個場景。

先別急著往下看,花十秒想一想:

若兩個安全開關都為 1 才允許主燈亮,應用哪種邏輯?若還要記住上一次是否開啟,只靠同一個邏輯門夠嗎?

把故事換成電腦語言

生活中的角色對應到技術概念
用 0 與 1 編碼舞台模式號碼二進位位元與進位轉換
兩個安全開關都通過才亮燈AND 與 Boolean truth table
從多組輸入挑選一組送到主燈Multiplexer 依 select bits 選輸入
控制台記住上一個場景Flip-flop 儲存一個狀態位元
多個狀態位元一起保留模式碼Register 由多個 storage elements 組成

題目出現這些字,先想到

  • 進位轉換先依位階展開;十六進位每一碼剛好對應 4 bits。
  • NOT(A AND B)=NOT A OR NOT B;De Morgan 會同時反轉運算子與 operands。
  • Combinational output 只看當下輸入;sequential circuit 還受先前狀態影響。
  • Adder 做加法,multiplexer 做選擇,flip-flop 儲存 1 bit,register 儲存多 bits。

1.進位是位階權重

不同進位制(number system)的核心概念是「位階權重」— 每個位置的值等於該位置的 digit 乘以 base 的位置次方。 【常見進位制】 • Binary(二進位, base 2):digit 只有 0 和 1。電腦內部使用。 • Octal(八進位, base 8):digit 0-7。Unix 檔案權限常用(如 755)。 • Decimal(十進位, base 10):digit 0-9。人類日常使用。 • Hexadecimal(十六進位, base 16):digit 0-9, A-F(A=10, B=11, ..., F=15)。記憶體位址、色碼常用。 【轉換方法】 十進位 → 二進位:反覆除以 2,取餘數,由下到上排列。 例如:13₁₀ → 13÷2=6...1, 6÷2=3...0, 3÷2=1...1, 1÷2=0...1 → 1101₂ 二進位 → 十進位:各位元乘以 2 的位置次方後加總。 例如:1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8+4+0+1 = 13₁₀ 二進位 ↔ 十六進位:每 4 個 bits 對應一個 hex digit。 例如:1010 1111₂ = AF₁₆(1010=A=10, 1111=F=15) 二進位 ↔ 八進位:每 3 個 bits 對應一個 octal digit。 例如:101 111₂ = 57₈(101=5, 111=7) 【二進位的算術】 加法:0+0=0, 0+1=1, 1+0=1, 1+1=10(進位)。 例如:1011 + 0101 = 10000(11+5=16) 【負數表示法】 • Sign-magnitude:最高位元表示正負(0=正, 1=負),其餘表示大小。問題:有 +0 和 -0 兩種零。 • 1's complement:把每個 bit 反轉。問題:仍有兩種零。 • 2's complement:反轉所有 bit 後加 1。現代電腦的標準。只有一種零,且加法不需要特殊處理正負號。 例如:-5 的 8-bit 2's complement = ~00000101 + 1 = 11111010 + 1 = 11111011 【考試連結】(1) 進位轉換是最常考的計算題。(2) 2's complement 表示法及其範圍:n bits 可表示 -2^(n-1) 到 2^(n-1)-1。(3) 最高位元 1 在 2's complement 中代表負數,不是 sign-magnitude 的正負號。

  • 101101₂=45₁₀
  • 2D₁₆=0010 1101₂
  • AND 可清除位元,OR 可設定位元,XOR 可判斷不同

2.真值表與布林定律

布林代數(Boolean algebra)是數位電路設計的數學基礎。變數只有兩個值:0(false)和 1(true)。三種基本運算對應三種基本邏輯閘(logic gate): 【三種基本邏輯閘】 • AND(與閘):A AND B = A·B。只有兩個輸入都是 1 時輸出才是 1。 真值表:00→0, 01→0, 10→0, 11→1 • OR(或閘):A OR B = A+B。只要有一個輸入是 1 輸出就是 1。 真值表:00→0, 01→1, 10→1, 11→1 • NOT(非閘/反閘):NOT A = A'。輸入反轉。 真值表:0→1, 1→0 衍生邏輯閘: • NAND = NOT AND:AND 的輸出再反轉。是 universal gate(可以用 NAND 組合出所有其他閘)。 • NOR = NOT OR:OR 的輸出再反轉。也是 universal gate。 • XOR(互斥或):兩個輸入不同時輸出 1,相同時輸出 0。 真值表:00→0, 01→1, 10→1, 11→0 【布林定律】 • 交換律:A·B = B·A, A+B = B+A • 結合律:(A·B)·C = A·(B·C) • 分配律:A·(B+C) = A·B + A·C, A+(B·C) = (A+B)·(A+C) • De Morgan's Theorem:(A·B)' = A'+B', (A+B)' = A'·B' 白話:AND 取反 = 各取反再 OR;OR 取反 = 各取反再 AND。 • 互補律:A·A' = 0, A+A' = 1 • 吸收律:A + A·B = A, A·(A+B) = A 【考試連結】(1) 用真值表驗證布林等式是最穩的方法。(2) De Morgan's theorem 是化簡布林表達式的關鍵工具。(3) NAND 和 NOR 的 universal gate 性質。(4) XOR 在考古題中常出現在 parity check 和加法器電路中。

  • A AND 1=A
  • A OR 0=A
  • A XOR A=0
  • De Morgan 定律對否定一整組條件特別有用

3.組合電路做即時計算

組合電路(combinational circuit)的輸出完全由當前的輸入決定,沒有記憶功能。給定相同的輸入,永遠得到相同的輸出。 【常見組合電路】 • Half Adder(半加器):兩個 1-bit 輸入相加,產生 Sum 和 Carry。 Sum = A XOR B, Carry = A AND B。 例如:A=1, B=1 → Sum=0, Carry=1(等於 10₂ = 2₁₀) • Full Adder(全加器):三個 1-bit 輸入(A, B, Carry-in)相加。 Sum = A XOR B XOR Cin, Cout = (A AND B) OR (Cin AND (A XOR B))。 多個 full adder 串接可以做 n-bit 加法(ripple-carry adder)。 • Multiplexer (MUX):多個輸入中選擇一個輸出。n 條選擇線可以從 2ⁿ 個輸入中選一個。像是一個「資料選擇器」。4:1 MUX 有 4 個資料輸入、2 條選擇線、1 個輸出。 • Decoder:n 個輸入、2ⁿ 個輸出。某一時刻只有一個輸出是 1(由輸入的二進位值決定哪一個)。例如 2:4 decoder:輸入 01 → 輸出 Y1=1,其餘為 0。記憶體的位址解碼就用 decoder。 • Encoder:Decoder 的反向 — 2ⁿ 個輸入、n 個輸出。把「哪一條輸入是 1」編碼成二進位數。 【布林表達式 → 電路】任何布林表達式都可以用 AND、OR、NOT 閘組合實現。兩種標準形式: • SOP(Sum of Products):多個 AND 項用 OR 連接。每個 AND 項叫 minterm。 • POS(Product of Sums):多個 OR 項用 AND 連接。每個 OR 項叫 maxterm。 Karnaugh Map(K-map)是化簡布林表達式的視覺化工具,把相鄰的 minterm 合併以減少邏輯閘數量。 【考試連結】(1) Half adder 和 full adder 的差異(有沒有 carry-in)。(2) MUX 和 decoder 的功能。(3) 給定布林表達式畫出電路圖,或反過來。

  • Sum 可用 XOR 表示
  • Carry 與 AND 有關
  • Multiplexer 不負責長期儲存狀態

4.時序電路加入狀態

時序電路(sequential circuit)的輸出不只取決於當前輸入,還取決於電路的內部狀態(記憶)。組合電路 + 記憶元件 = 時序電路。 【Flip-Flop(正反器)】最基本的 1-bit 記憶元件。可以儲存一個 bit(0 或 1),在 clock signal 的觸發下更新狀態。 常見類型: • SR Flip-Flop:Set (S=1) → 輸出 Q=1。Reset (R=1) → 輸出 Q=0。S=R=1 是無效狀態(禁止)。 • D Flip-Flop:在 clock 觸發時,輸出 Q = 輸入 D 的值。最常用、最直覺。 • JK Flip-Flop:J=K=1 時 toggle(翻轉)。解決了 SR flip-flop 的無效狀態問題。 • T Flip-Flop:T=1 時 toggle,T=0 時保持。常用於計數器。 【Register(暫存器)】多個 flip-flop 並聯,儲存多 bit 資料。一個 n-bit register 由 n 個 D flip-flop 組成。CPU 的 registers 就是這樣實現的。 【Counter(計數器)】一串 flip-flop 連接起來,每個 clock pulse 計數加 1。n-bit counter 可以計數 0 到 2ⁿ-1。用途:program counter(指令計數器)、timer。 【Finite State Machine(有限狀態機, FSM)】由有限個狀態和狀態間的轉換組成。每個 clock cycle 根據當前狀態和輸入決定下一個狀態和輸出。 兩種類型: • Mealy machine:輸出取決於當前狀態 + 輸入。 • Moore machine:輸出只取決於當前狀態。 FSM 在考古題中通常以「狀態圖」的形式出現。 【考試連結】(1) 組合電路 vs 時序電路的差異:有沒有記憶/狀態。(2) D flip-flop 的功能(最常考)。(3) 時序電路需要 clock signal 來同步狀態更新。(4) Register 是 flip-flop 的擴展。

  • Sequential output 取決於當前輸入與現有狀態
  • Register 與 main memory 層級不可混為同一概念

一起拆題目

範例 1將 3A₁₆ 轉成二進位與十進位。

  1. 3 對應 0011,A 對應 1010。
  2. 二進位為 00111010。
  3. 十進位為 3×16+10=58。

所以答案是:3A₁₆=00111010₂=58₁₀。

範例 2計算 NOT(A AND B) 在 A=1、B=0 時的值,並用 De Morgan 驗證。

  1. A AND B=0。
  2. NOT 0=1。
  3. NOT A OR NOT B=0 OR 1=1。

所以答案是:兩種寫法均得 1,功能等價。

這裡最容易選錯

  • 把十六進位 A 當作十進位 1
  • 只反轉 De Morgan 的運算子卻沒否定 operands
  • 把 multiplexer 當成記憶元件
  • 認為 sequential circuit 輸出只看當前輸入

換你快速判斷

先在心中作答,再展開答案。答不出來時,回頭找本課的對照關係。

1十六進位與二進位為何可四位一組轉換?

因為 16=2^4,一個十六進位數碼正好表示 4 bits 的 0–15。

例如 A₁₆=1010₂,2D₁₆=0010 1101₂。

2AND、OR、XOR 在 bit mask 中各常用來做什麼?

AND 保留/清除指定位;OR 設定位;XOR 切換位或檢查不同。

運算是逐 bit 套用,需先對齊位數。

3De Morgan 定律如何否定 A AND B?

NOT(A AND B)=NOT A OR NOT B。

否定分配進去時,AND/OR 也要互換。

4真值表能證明兩個 Boolean expressions 等價嗎?

可以;若所有輸入組合的輸出都相同,兩者功能等價。

n 個 Boolean inputs 有 2^n 組組合。

5Combinational 與 sequential circuit 的核心差異?

Combinational output 只由當前輸入決定;sequential output 還受已儲存狀態影響。

Flip-flop/register 是常見狀態元件。

6Adder、multiplexer、flip-flop 各自的主要功能?

Adder 加法;multiplexer 選擇一路輸入;flip-flop 儲存 1 bit。

三者分別對應算術、選擇與狀態。

再到題庫找辨識線索

這個基礎主題在現有考古題中沒有可確認的直接題,所以不會為了湊數量而硬連題目。可回到完整題庫,練習辨識它與相鄰概念的關係。

瀏覽資訊科技概論題庫

參考來源