歡迎來到布林代數的世界!

你好!布林代數(Boolean Algebra)聽起來可能很深奧,但它其實是計算機科學中最基礎且優美的部分之一。為什麼呢?因為它是電腦內每一個數位電路的數學骨幹,從 CPU 到記憶體晶片,全都仰賴它。

本章將教你關於「真/假」(或 1/0)陳述如何運作的規則(即「代數」)。掌握這些規則,你就能簡化複雜的邏輯電路,讓電腦運行得更快、更小巧、更有效率。不妨把它想像成學習數位設計的文法!

3.7.7 邏輯規則:布林代數

布林代數是由 George Boole 在 19 世紀開發的一套系統。不同於處理數字的標準代數,布林代數僅處理兩個數值:

  • 真 (True, T) 或 1 (高電壓)
  • 假 (False, F) 或 0 (低電壓)
在計算機架構中,這些數值代表在 CPU 和其他組件內部的邏輯閘(如 AND、OR、NOT 等)之間傳輸的訊號。

關鍵布林運算子(基本組件)

我們主要使用三種運算子,它們通常直接對應於基本的邏輯閘:

  • NOT(反相/補數):以變數上方的橫線 (\( \bar{A} \)) 或撇號 (A') 表示。將數值翻轉(1 變 0,0 變 1)。
  • AND(邏輯乘法/合取):以點號 (\( A \cdot B \)) 或直接將變數寫在一起 (AB) 表示。只有當兩個輸入皆為 1 時,輸出才為 1。
  • OR(邏輯加法/析取):以加號 (\( A + B \)) 表示。只要至少有一個輸入為 1,輸出即為 1。

優先順序(誰先執行?)

就像算術中的四則運算優先次序 (BODMAS/PEMDAS) 一樣,布林運算式也必須遵循特定的順序來執行。如果不遵守,簡化出來的結果就會出錯!
優先順序(由高至低)為:

  1. NOT (\( \bar{A} \)) - 最高
  2. AND (\( A \cdot B \))
  3. OR (\( A + B \)) - 最低
(記住:就像數學一樣,括號永遠可以改變這個優先順序。)

快速複習:
如果你看到 \( \bar{A} + B \cdot C \),你需要先算 NOT A,接著算 B AND C,最後再將結果進行 OR 運算。

布林基本定律

這三條定律規範了我們如何在不改變整體輸出情況下,重組布林運算式中的變數。它們能幫助我們透過移動項來簡化運算式。

1. 交換律 (Commutativity)(順序不重要)

這意味著你可以交換 AND 或 OR 運算子兩側的變數順序。

  • OR 交換律: \( A + B = B + A \)
  • AND 交換律: \( A \cdot B = B \cdot A \)
類比:無論你是先穿左腳襪子再穿右腳 (L+R),還是先穿右腳再穿左腳 (R+L),最終結果(兩隻腳都穿上襪子)是一樣的。

2. 結合律 (Associativity)(分組不重要)

當你有三個或更多由相同運算子(全部是 AND 或全部是 OR)連接的變數時,如何進行分組都不會改變結果。

  • OR 結合律: \( A + (B + C) = (A + B) + C \)
  • AND 結合律: \( A \cdot (B \cdot C) = (A \cdot B) \cdot C \)

3. 分配律 (Distributivity)(分佈特性)

分配律顯示了 AND 運算子如何分佈在 OR 運算子上(類似於標準代數中乘法對加法的分配)。

  • AND 對 OR 的分配律: \( A \cdot (B + C) = (A \cdot B) + (A \cdot C) \)
你知道嗎?與標準代數不同,在布林代數中,OR 也可以分配到 AND 上,雖然這個等式在考試中進行基礎簡化時較少用到:\( A + (B \cdot C) = (A + B) \cdot (A + C) \)。

定律要點總結:交換律和結合律讓你能夠重排變數,分配律則讓你能夠展開或分解運算式。

布林恆等式(簡化的規則)

這些恆等式是你操作與簡化布林運算式的核心工具。它們本質上就是邏輯真值表的捷徑。簡化運算式意味著減少變數和運算子的數量,這直接轉化為在最終電路設計中使用更少、更便宜或更快速的邏輯閘。

基本恆等規則:
  • 雙重否定 (Double Negation):NOT NOT 運算會互相抵消。
    \( \overline{\bar{A}} = A \)
  • 冪等律 (Idempotence)(重複不重要):如果將一個變數與自身進行 AND 或 OR 運算,結果仍是該變數本身。
    \( A \cdot A = A \)
    \( A + A = A \)
    (如果你把開關打開,然後立刻又打開一次,結果還是打開的。)
  • 互補律 (Complementary Rules):
    變數與其反相進行 AND 運算永遠為 0 (False)。
    \( A \cdot \bar{A} = 0 \)
    變數與其反相進行 OR 運算永遠為 1 (True)。
    \( A + \bar{A} = 1 \)
涉及 0 和 1 的規則:

這些規則顯示了當輸入與常數 0 (False) 或 1 (True) 結合時的行為。

  • 與 0 和 1 的 AND 運算:
    \( A \cdot 0 = 0 \) (任何值 AND 0 都是 0。如果其中一個條件必須為 False,結果一定是 False。)
    \( A \cdot 1 = A \) (任何值 AND 1 都是其自身。1 不會改變結果。)
  • 與 0 和 1 的 OR 運算:
    \( A + 0 = A \) (任何值 OR 0 都是其自身。0 不會改變結果。)
    \( A + 1 = 1 \) (任何值 OR 1 都是 1。如果其中一個條件必須為 True,結果一定是 True。)
進階恆等規則:
  • 吸收律 (Absorption Laws):這些規則允許你「吸收」冗餘的變數。
    \( A \cdot (A + B) = A \)
    \( A + (A \cdot B) = A \)
    (如果你已經保證 A 為 True,那麼再去檢查 A AND B 是否為 True 是毫無意義的,因為 A 就足夠了。)
  • 較少見的吸收律(但考試仍需掌握):
    \( A + (\bar{A} \cdot B) = A + B \)
    \( A \cdot (\bar{A} + B) = A \cdot B \)


如果剛開始覺得這很棘手,別擔心!關鍵在於練習。每當你看到像 \( A + 1 \) 或 \( A \cdot \bar{A} \) 這樣的組合時,你應該要能自動聯想到它們分別可以簡化為 1 或 0。

狄摩根定律 (De Morgan’s Laws):最強大的工具

狄摩根定律提供了處理複雜運算式否定(NOT)的規則。這對於簡化涉及 NAND 和 NOR 閘(本質上是 NOT-AND 和 NOT-OR)的電路至關重要。

當你對整個括號運算式加上 NOT 運算(上方有完整的橫線)時,你必須:

  1. 對每個變數單獨進行 NOT 運算。
  2. 改變運算子(AND 變 OR,OR 變 AND)。

狄摩根定律 1(否定一個 OR 運算)

對兩個變數的 OR 結果進行否定,等同於對每個變數進行 NOT 運算後再進行 AND 運算。
\[ \overline{A + B} = \bar{A} \cdot \bar{B} \]
(一個 NOR 閘等同於一個「NOT A」AND「NOT B」的排列。)

狄摩根定律 2(否定一個 AND 運算)

對兩個變數的 AND 結果進行否定,等同於對每個變數進行 NOT 運算後再進行 OR 運算。
\[ \overline{A \cdot B} = \bar{A} + \bar{B} \]
(一個 NAND 閘等同於一個「NOT A」OR「NOT B」的排列。)

簡化步驟範例

讓我們簡化運算式:\( Y = \overline{A \cdot B} + \bar{A} \)

  1. 對第一項應用狄摩根定律:
    我們將 \( \overline{A \cdot B} \) 替換為 \( \bar{A} + \bar{B} \)。
    運算式變成:\( Y = (\bar{A} + \bar{B}) + \bar{A} \)
  2. 移除多餘的括號(結合律):
    \( Y = \bar{A} + \bar{B} + \bar{A} \)
  3. 重排項(交換律):
    \( Y = \bar{A} + \bar{A} + \bar{B} \)
  4. 應用冪等律 (\( A + A = A \)):
    \( \bar{A} + \bar{A} \) 簡化為 \( \bar{A} \)。
    最終的簡化運算式為:\( Y = \bar{A} + \bar{B} \)

這展示了如何將複雜的電路 \( \overline{A \cdot B} + \bar{A} \) 轉化為僅使用簡單得多的電路 \( \bar{A} + \bar{B} \),從而節省組件和成本!

本章要點總結:
布林代數提供了在數學上簡化複雜邏輯電路所需的規則(恆等式和定律)。我們的目標永遠是將運算式化簡到最簡單的形式,以減少電腦硬體中實際的物理組件(邏輯閘)。