歡迎來到布林代數(Boolean Algebra)的世界!
在本章中,我們將深入探討電腦的「大腦」。你已經知道電腦只理解二進制(0 和 1),但你有沒有想過它們實際上是如何「思考」或做出決策的呢?這正是布林代數的用途所在。這是一種特殊的數學,其答案只有兩種可能:真 (True, 1) 或 假 (False, 0)。
如果數學不是你最擅長的科目,也別擔心!布林代數非常講究邏輯,只要學會幾個簡單的「遊戲規則」,你就能像專業人士一樣簡化複雜的電路。這是電腦組織與架構(Computer Organisation and Architecture)中至關重要的一部分,因為這些方程式就是 CPU 內部硬體的藍圖。
1. 基礎工具:邏輯運算子
在開始運算之前,我們必須先熟悉符號。在牛津 AQA 9645 的課程大綱中,我們使用特定的符號來表示邏輯閘:
- NOT: 在字母上方加一條橫線表示(例如 \(\overline{A}\))。它單純地將位元反轉。
- AND: 用點號表示(例如 \(A \cdot B\))。兩者都必須為 1,結果才為 1。
- OR: 用加號表示(例如 \(A + B\))。只要其中之一為 1,結果就為 1。
- XOR: 用圓圈內的加號表示(例如 \(A \oplus B\))。兩者必須不同,結果才為 1。
運算優先順序
就像一般數學使用 BODMAS 或 PEMDAS 一樣,布林代數也有運算順序。如果你看到一長串運算式,必須按照以下順序求解:
- 括號(永遠先處理括號內的內容!)
- NOT(最高優先級)
- AND
- OR(最低優先級)
記憶小撇步: 記住 N.A.O.,就像 Never Ate Oranges(NOT, AND, OR)。
快速複習: 如果你看到 \(A + B \cdot \overline{C}\),你會先計算 NOT C,接著與 B 進行 AND 運算,最後再與 A 進行 OR 運算。
2. 遊戲規則:布林定律
這些定律讓我們可以重新排列運算式,使其更易於閱讀或在現實中以更低成本建構。
交換律(Commutative Law)
變數的順序不影響結果。
\(A + B = B + A\)
\(A \cdot B = B \cdot A\)
想像一下加糖到咖啡裡:糖 + 咖啡 與 咖啡 + 糖是一樣的!
結合律(Associative Law)
只要運算子相同,分組方式並不重要。
\(A + (B + C) = (A + B) + C\)
\(A \cdot (B \cdot C) = (A \cdot B) \cdot C\)
分配律(Distributive Law)
這就像代數中的「展開括號」。AND 運算會「分配」到 OR 運算之上。
\(A \cdot (B + C) = A \cdot B + A \cdot C\)
重點總結: 這些定律證明了布林代數遵循著與你熟悉的數學相同的邏輯路徑,這讓它們更容易記憶!
3. 布林恆等式(「小抄」)
這些是能幫助你消去長方程式中部分內容的小捷徑。想像你在整理房間,這些恆等式能幫你丟棄方程式中那些「垃圾」位元。
- 雙重否定律: \(\overline{\overline{A}} = A\)(開關按兩次會回到原狀)。
- 相同規則: \(A \cdot A = A\) 且 \(A + A = A\)。
- 相反規則: \(A \cdot \overline{A} = 0\)(它不可能同時是真 AND 假!)。
- 永遠規則: \(A + \overline{A} = 1\)(它必然是真 OR 假其中之一)。
- 恆等規則: \(A \cdot 1 = A\) 且 \(A + 0 = A\)。
- 空值規則: \(A \cdot 0 = 0\) 且 \(A + 1 = 1\)(一旦某物與 1 進行 OR 運算,整個結果就會變成 1)。
常見錯誤: 學生常以為 \(A + A = 2A\)。請記住,二進制裡沒有「2」!在布林代數中,\(A + A\) 還是 \(A\)。
4. 迪摩根定律(De Morgan’s Laws)
這通常是學生覺得最棘手的部分,但有一個簡單的口訣可以幫你記住。迪摩根定律用於處理運算式上方那條長長的 NOT 橫線。
規則: 「斷開橫線,更換符號」(Break the line, change the sign)。
- \(\overline{A + B} = \overline{A} \cdot \overline{B}\)(切斷加號上方的橫線,將加號變為點號)。
- \(\overline{A \cdot B} = \overline{A} + \overline{B}\)(切斷點號上方的橫線,將點號變為加號)。
步驟範例:簡化 \(\overline{\overline{A} + B}\)
1. 在中間切斷橫線:\(\overline{\overline{A}} \quad \overline{B}\)
2. 更改符號(+ 變為 \(\cdot\)):\(\overline{\overline{A}} \cdot \overline{B}\)
3. 簡化雙重否定:\(A \cdot \overline{B}\)
你知道嗎? 工程師使用迪摩根定律將 OR 閘轉換為 NAND 閘,因為 NAND 閘通常更便宜且更易於製造!
5. 電路與記憶體
布林代數不只存在於紙上,它還用於建構電腦的組件。
加法器(Adders)
電腦需要進行運算,我們使用加法器來完成:
1. 半加器(Half-Adder): 將兩個位元相加。它會產生一個和(Sum)(使用 XOR 閘)以及一個進位(Carry)(使用 AND 閘)。
2. 全加器(Full-Adder): 可以將三個位元相加(兩個位元加上來自前一次加法的「進位輸入」)。這就是電腦處理大數字加法的方式。
D 型正反器(D-Type Flip-Flop)
電腦是如何「記憶」一個 1 或 0 的呢?它使用一種稱為正反器(Flip-Flop)的電路。
D 型正反器是一種記憶單元。它有一個輸入 (D) 和一個時脈(Clock)輸入。
邏輯: 當時脈訊號「滴答」一聲(從低電位變為高電位)時,電路才會查看輸入 (D)。就在那一瞬間,它會捕捉 D 的值並將其儲存為輸出,直到下一次時脈觸發為止。
快速複習盒:
- 邏輯閘: NOT, AND, OR, XOR, NAND, NOR。
- 符號: \(\overline{A}\) (NOT), \(\cdot\) (AND), \(+\) (OR)。
- 順序: 先 NOT,再 AND,最後 OR。
- 迪摩根: 斷開橫線,更換符號。
- 正反器: 儲存 1 個位元的記憶,由時脈觸發。
最後的鼓勵
學習布林代數就像學習一門新語言。起初這些符號看起來很陌生,但邏輯是非常連貫的。先從練習簡化小型的方程式開始,很快你就能處理複雜的大題目了!你可以做到的!