歡迎來到機器邏輯的世界!
歡迎!在本章中,我們將深入探討布林代數(Boolean Algebra)。如果你曾好奇電腦——本質上只是一堆開關的集合——是如何執行播放影片或計算稅務等複雜任務的,答案就在這裡。布林代數是用於表示電腦處理器內部邏輯的數學系統。
如果數學不是你最喜歡的科目,也不用擔心。與你在學校接觸到的無限數字數學不同,布林代數只使用兩個數字:1 (真/True) 和 0 (假/False)。讀完這些筆記後,你將能夠像 CPU 一樣簡化複雜的邏輯問題!
1. 構建基礎:邏輯閘與真值表
在我們進行「代數」運算之前,需要先理解基本操作。在標準數學中,我們有 +、- 和 \(\times\)。而在布林邏輯中,我們有邏輯閘(Logic Gates)。
三大基礎邏輯閘
1. NOT (非運算): 這只是簡單地反轉輸入。如果你給它一個 1,它會給你一個 0。
類比:「相反日」閘。
符號:\(\neg A\) 或 \(\overline{A}\)
2. AND (與運算): 只有當兩個輸入皆為 1 時,輸出才為 1。
類比:要參加學校旅行,你需要簽署許可單 AND 繳交訂金。如果缺了一樣,你就去不了!
符號:\(A \cdot B\) 或 \(A \wedge B\)
3. OR (或運算): 只要至少有一個輸入為 1,輸出就是 1。
類比:要進入電影院看電影,你可以出示電子票 OR 紙本票。兩者皆可!
符號:\(A + B\) 或 \(A \vee B\)
異或閘
XOR (互斥或運算): 如果輸入不同(一個是 1,另一個是 0),輸出為 1。如果兩者相同,輸出則為 0。
類比:「二選一,但不能兩者皆選」的規則。
符號:\(A \oplus B\)
快速回顧:真值表
真值表(Truth Table)就是列出所有可能的輸入以及對應的輸出結果。繪製真值表時,請務必按照二進位順序(00, 01, 10, 11)計算,以確保不會遺漏任何組合!
重點總結: 邏輯閘是布林運算的「實體」版本,而真值表則是它們運作規律的藍圖。
2. 簡化邏輯:遊戲規則
電腦追求效率。如果邏輯電路過於雜亂,會消耗更多電力並產生更多熱量。我們使用布林恆等式(Boolean Identities)來簡化運算式(讓它們變得更精簡)。
基本規則
- 交換律(Commutation): 順序不重要。\(A + B\) 與 \(B + A\) 是一樣的。
- 結合律(Association): 對於相同的運算,分組方式不重要。\((A + B) + C\) 與 \(A + (B + C)\) 是一樣的。
- 雙重否定(Double Negation): 兩個 NOT 會相互抵消。\(\overline{\overline{A}} = A\)。(就像說「我不是不去」——意思就是你「會去」!)
- 分配律(Distribution): 這就像代數中的括號展開。\(A \cdot (B + C) = (A \cdot B) + (A \cdot C)\)。
德摩根定律(De Morgan’s Laws,考試最愛!)
這是 OCR 考試中最重要的規則。它用於將 AND 運算式轉換為 OR 運算式(反之亦然)。
規則: \(\overline{A \cdot B} = \overline{A} + \overline{B}\) 以及 \(\overline{A + B} = \overline{A} \cdot \overline{B}\)
記憶口訣:「拆掉長槓,改變符號。」
如果你有一個橫跨整個運算式的長「NOT」槓,你可以將它拆成兩個較短的槓,但必須將中間的符號反轉(AND 變 OR,OR 變 AND)。
重點總結: 簡化運算式可以讓電路構建得更快、更省成本。德摩根定律是你處理長「NOT」槓時的最佳夥伴。
3. 卡諾圖(K-Maps)
如果代數規則讓你感到困惑,卡諾圖(Karnaugh Maps)是一種視覺化的簡化邏輯方法。這就像一個將 1 分組在一起的拼圖遊戲。
如何繪製卡諾圖:
- 根據你的輸入建立一個網格。
- 關鍵步驟: 標題使用格雷碼(Gray Code)。這意味著一次只能改變一個位元(00, 01, 11, 10)。請注意 11 是排在 10 之前的!
- 從真值表填入 1 和 0。
- 圈出 1: 將它們分成 1、2、4 或 8 個的矩形或正方形組合。目標是盡可能圈出最大的群組!
- 找出「存活」的變數: 觀察一個群組。如果某個變數發生變化(例如在群組某部分 \(A\) 是 0,但在另一部分是 1),則該變數被捨棄。只有在整個群組中保持不變的變數,才能進入最終結果。
常見錯誤: 永遠不要圈出 3 個一組!群組的大小必須始終是 2 的冪次方。
重點總結: 卡諾圖非常適合視覺學習者。它通過將「1」的結果分組,將雜亂的真值表轉化為簡單的方程式。
4. 電路:加法器與正反器
現在讓我們看看這些邏輯如何實際構建組件。
半加法器與全加法器
電腦是如何進行加法運算的?它使用以下電路:
- 半加法器(Half Adder): 將兩個位元(\(A\) 與 \(B\))相加。它有兩個輸出:和(Sum)(使用 XOR 閘計算)與 進位(Carry)(使用 AND 閘計算)。
- 全加法器(Full Adder): 更進階的電路。它將三個位元相加:\(A\)、\(B\) 以及來自前一次計算的進位輸入(Carry In)。這使我們能夠將它們串聯起來,進行大數值的運算。
D 型正反器(D-Type Flip-Flop)
邏輯閘通常只是立即對輸入做出反應,但電腦需要記憶功能。D 型正反器是一個可以儲存 1 位元數據的電路。
- 它具有數據輸入(Data input)和時脈輸入(Clock input)。
- 僅當時脈(Clock)「滴答」一聲(通常是在上升沿時)才會儲存數據輸入端的值。
- 它會在兩個狀態之間「翻轉」(Flip/Flop),並保持該狀態直到下一個時脈脈衝。
類比:想像一台相機。數據輸入是你看到的景象,而時脈就是快門按鈕。「記憶」就是即使你移動相機,照片依然存在那裡,直到你再次按下按鈕為止。
重點總結: 加法器負責運算,而正反器是最基本的記憶體形式(RAM)。
快速複習清單
在參加考試之前,請確保你能:
- 繪製 AND、OR、NOT 和 XOR 的真值表。
- 應用德摩根定律(拆掉長槓,改變符號!)。
- 使用分配律和結合律簡化運算式。
- 使用格雷碼(00, 01, 11, 10)填寫卡諾圖。
- 解釋半加法器與全加法器的區別。
- 描述 D 型正反器如何利用時脈訊號來儲存數據。
你知道嗎? 布林代數是以 19 世紀的自學數學家喬治·布爾(George Boole)的名字命名的。他在電子電腦出現之前的很久,就發明了這個系統!