💡 全面學習筆記:布林邏輯 (Boolean Logic) (電腦系統)
歡迎來到邏輯實驗室!
歡迎!布林邏輯是你學習電腦科學過程中最重要的概念之一。別被這個名字嚇倒——它其實只是描述電腦如何利用簡單的 TRUE(真) 和 FALSE(假) 條件來進行決策的一種高階說法。
從處理器到記憶體,電腦系統的每個部分都使用基於布林邏輯的電路。理解這一章至關重要,因為它解釋了所有數位系統背後基本的「大腦」結構。
我們將會把這些決策拆解成簡單的建構組件,也就是邏輯閘 (Logic Gates)。準備好投入由 1 和 0 組成的二進位世界了嗎?我們開始吧!
第一部分:布林邏輯的基礎
什麼是布林邏輯?
布林邏輯 (Boolean Logic)(以數學家 George Boole 命名)是一種代數系統,它只處理兩種可能的數值:
- TRUE(真)(以二進位數字 1 表示)
- FALSE(假)(以二進位數字 0 表示)
類比: 想像一個簡單的電燈開關。它不是處於 開 (1) 就是 關 (0) 的狀態。它不可能處於中間狀態!電腦運作的方式正是如此,透過邏輯來結合這些開/關訊號,從而執行複雜的任務。
關鍵概念:邏輯閘
邏輯閘 (Logic Gate) 是一種電子電路元件,它接收一個或多個輸入(0 或 1),並根據特定的邏輯規則產生單一輸出(0 或 1)。它們是所有電腦硬體最基礎的建構組件。
布林邏輯 = 基於 True (1) 或 False (0) 的決策。
邏輯閘 = 執行單一邏輯運算的微型電路。
第二部分:核心邏輯閘
我們必須理解四個核心邏輯閘:NOT、AND、OR 和 XOR。每個閘都有特定的符號,以及由其真值表 (Truth Table) 定義的具體功能。
1. NOT 閘 (反相器)
NOT 閘是最簡單的閘。它只有一個輸入和一個輸出。
- 功能: 它會反轉輸入訊號。如果輸入是 TRUE (1),輸出就是 FALSE (0);反之亦然。
- 邏輯表達式符號: 通常寫作 \(\bar{A}\) 或 A'(讀作 "A-bar" 或 "A prime")。
類比: 想像一個「禁止進入」的標誌。如果輸入是「走」,輸出就是「停」。
NOT 閘的真值表 (輸入 A,輸出 X)
| A (輸入) | X (輸出) |
|---|---|
| 0 | 1 |
| 1 | 0 |
記憶輔助: NOT 是「頑皮」閘——它總是跟你指示的相反!
2. AND 閘 (嚴格閘)
AND 閘有兩個或多個輸入,但只有一個輸出。
- 功能: 只有當所有輸入皆為 TRUE (1) 時,輸出才會是 TRUE (1)。
- 邏輯表達式符號: 通常寫作 \(A \cdot B\) 或直接寫 AB。
類比: 想像你的玩具需要電池。你需要電池 A AND 電池 B。如果缺少其中一個,玩具就無法運作。兩者都必須存在 (1),才能得到結果 (1)。
AND 閘的真值表 (輸入 A, B,輸出 X)
| A | B | X (\(A \cdot B\)) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
重點筆記: AND 閘只有在最後一行才會輸出 1。
3. OR 閘 (靈活閘)
OR 閘有兩個或多個輸入,以及一個輸出。
- 功能: 只要有任何一個輸入為 TRUE (1),輸出就是 TRUE (1)。
- 邏輯表達式符號: 通常寫作 \(A + B\)。
類比: 你想外出。如果你那裡天氣晴朗 OR 你的朋友在那裡,你就可以外出。只要滿足其中一個條件(或兩者皆滿足!),你就可以出去(輸出 = 1)。
OR 閘的真值表 (輸入 A, B,輸出 X)
| A | B | X (\(A + B\)) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
常見錯誤提醒: 請記住,在布林邏輯中,OR 指的是「A 或 B,或兩者皆是」。這稱為包含性或 (Inclusive OR)。
4. XOR 閘 (互斥或)
XOR 閘非常關鍵,特別是用於二進位加法等程序(稍後我們會看到原因!)。
- 功能: 當且僅當其中一個輸入為 TRUE (1) 時,輸出才會是 TRUE (1)。如果兩個輸入相同(皆為 0 或皆為 1),輸出就是 FALSE (0)。
- 邏輯表達式符號: 通常寫作 \(A \oplus B\)。
類比: 想像一家餐廳提供優惠:「你可以選擇免費汽水 XOR 免費甜點。」如果你只選了一樣,你就可以得到優惠;但如果你試圖兩樣都拿(或者什麼都不拿),你就什麼也得不到!
XOR 閘的真值表 (輸入 A, B,輸出 X)
| A | B | X (\(A \oplus B\)) |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
記憶秘訣: XOR 檢查的是「差異」。如果輸入不同 (Different),輸出就是 1;如果輸入相同 (Same),輸出就是 0。
實現這些閘的實體電路是由稱為電晶體 (transistors) 的微型電子元件製成的。現代 CPU 包含數十億個這樣的電晶體,它們全都在這四條簡單規則的運作下協同工作!
第三部分:理解並建立真值表
真值表 (Truth Table) 是一個顯示特定邏輯電路或邏輯閘的所有可能輸入組合及其結果輸出的表格。
建立真值表的逐步指南
當你將不同的閘結合起來時,就會創造出複雜的電路。真值表定義了該電路的整體行為。
第一步:確定行數
如果你有 \(N\) 個輸入,你需要的行數(組合數)為 \(2^N\)。
- 2 個輸入 (A, B) = \(2^2\) = 4 行。(GCSE 最常見)
- 3 個輸入 (A, B, C) = \(2^3\) = 8 行。
第二步:有系統地列出所有輸入組合
這一步確保你不會遺漏任何組合。
-
如果你有兩個輸入 (A 和 B):
- 先看輸入 A:一半的時間為 0,一半的時間為 1(兩個 0,接著兩個 1)。
- 輸入 B:每一行輪流交替 0 和 1 (0, 1, 0, 1)。
第三步:逐步求解邏輯表達式
針對複雜的表達式(例如找出 \(\bar{A} + B\) 的輸出):
- 首先為任何 NOT 運算建立一欄(例如:\(\bar{A}\) 的欄位)。
- 為中間結果建立欄位(例如:OR 運算的結果)。
- 計算最終輸出欄 (X)。
範例:求解 \(X = \bar{A} \cdot B\)
意思是:NOT A AND B。
| A | B | 中間值 (\(\bar{A}\)) | X (最終輸出) |
|---|---|---|---|
| 0 | 0 | 1 (NOT 0 為 1) | 0 (1 AND 0 為 0) |
| 0 | 1 | 1 (NOT 0 為 1) | 1 (1 AND 1 為 1) |
| 1 | 0 | 0 (NOT 1 為 0) | 0 (0 AND 0 為 0) |
| 1 | 1 | 0 (NOT 1 為 0) | 0 (0 AND 1 為 0) |
鼓勵: 如果一開始覺得很棘手,別擔心!只要記住核心規則(特別是 AND 需要所有輸入皆為 1,而 OR 至少需要一個 1),你一定能成功。慢慢來,一行一行地做!
第四部分:邏輯電路與電腦系統
繪製邏輯電路圖
除了撰寫表達式和繪製表格外,我們還可以使用每個閘的標準符號來畫出電路圖。
標準閘符號
NOT 閘: 一個三角形,輸出端有一個小圓圈(「反相泡泡」)。
AND 閘: 形狀像大寫字母 'D'。
OR 閘: 形狀像拉長的曲線或盾牌。
XOR 閘: 看起來像 OR 閘,但在輸入端多了一條額外的彎曲線。
組合邏輯閘
邏輯閘連接在一起形成電路。一個閘的輸出通常會變成另一個閘的輸入。
簡單電路範例:\(X = A + (B \cdot C)\)
要建立這個電路,你必須像在數學中一樣先處理括號內的部分:
- 輸入 B 和 C 進入一個 AND 閘。(我們稱這個中間輸出為 D)。
- 輸入 A 和中間輸出 D(即 \(B \cdot C\))進入一個 OR 閘。
- OR 閘的最終輸出就是 X。
這展示了簡單的邏輯閘是如何結合起來,創造出 CPU 所需的複雜決策系統,以執行二進位加法、數據比較和記憶體定址等任務。
- 布林邏輯使用 1 (True) 和 0 (False) 來代表所有數據與決策。
- NOT 將輸入翻轉。
- AND 需要所有輸入皆為 1 才能輸出 1。
- OR 只需要至少一個輸入為 1 就能輸出 1。
- XOR 需要恰好一個輸入為 1 才能輸出 1。
- 真值表將所有可能的輸入組合對應到最終輸出。
為什麼這對電腦系統很重要?
這一章是電腦硬體的基石:
- 處理器 (CPU): CPU 內部的算術邏輯單元 (ALU) 使用邏輯閘來執行所有計算(加法、減法)和比較。
- 記憶體: 鎖存器 (latches) 和觸發器 (flip-flops)(用於儲存 1 位元數據)完全由互連的邏輯閘構成。
- 控制: 邏輯閘會判定條件是否滿足,才允許系統繼續運作(例如:「只有在電源開關為 ON AND 啟動磁區準備就緒時,才啟動系統」)。
做得好!你現在已經理解了電腦最基本的決策程序。繼續練習那些真值表吧!