歡迎來到布爾邏輯:AND、OR 與 NOT!

你有沒有想過電腦是如何做決定的?無論電腦是在運行電子遊戲、檢查你的密碼,還是在網上搜尋資料,它都是使用一種非常特別的決策方式來處理資訊,這就是布爾邏輯(Boolean logic)

如果一開始覺得這個概念很嶄新或有點棘手,千萬不用擔心!我們會一步一步將所有內容拆解,透過簡單的規則、生動的圖解說明以及日常生活的例子,讓你輕鬆完全掌握。


1. 甚麼是布爾邏輯?

布爾邏輯是一種邏輯形式,當中每一個陳述或數值都只有兩種可能:真(True)假(False)。絕不存在「或者」、「可能」,也沒有任何灰色地帶!

它是由英國數學家佐治·布爾(George Boole)在19世紀發明的。時至今日,它已成為世上所有現代電腦運作的基石。

電腦如何運用布爾邏輯(二進制表示法)

在電腦內部,所有組件都是由微小的電子開關組成的。由於開關只有開啟或關閉兩種狀態,因此電腦會使用二進制(binary)來表示布爾邏輯:

真(True)以二進制數字 \(1\) 表示(代表電路開啟/ON 或高電壓)。
假(False)以二進制數字 \(0\) 表示(代表電路關閉/OFF 或低電壓)。

你知道嗎? 每當你打字、點擊滑鼠或玩遊戲時,你的電腦每一秒都在利用布爾邏輯切換數以十億計的 \(1\) 和 \(0\)!

重點提示: 布爾邏輯只有兩種可能的狀態:真(\(1\))假(\(0\))


2. 邏輯門與真值表

在探討具體規則之前,我們先來認識兩項電腦科學必備的工具:

1. 邏輯門(Logic Gate): 電腦電路中微小的基本電子元件。它接收一個或多個二進制輸入(\(0\) 或 \(1\)),根據特定的邏輯規則進行處理,然後產生一個二進制輸出(\(0\) 或 \(1\))。
2. 真值表(Truth Table): 一個結構清晰的簡易表格,列出所有可能的輸入組合以及對應產生的輸出結果。

真值表有多少行?

有一個非常方便的數學公式,可以計算出任何真值表所需的行數:

行數 = \(2^n\),其中 \(n\) 為輸入的數量。

• 只有 \(1\) 個輸入(\(n = 1\)):\(2^1 = 2\) 行(輸入可以是 \(0\) 或 \(1\))。
• 有 \(2\) 個輸入(\(n = 2\)):\(2^2 = 4\) 行(組合為 \((0, 0)\)、\((0, 1)\)、\((1, 0)\) 和 \((1, 1)\))。
• 有 \(3\) 個輸入(\(n = 3\)):\(2^3 = 8\) 行。

標準排列小貼士: 在英國及香港的電腦科課程中,我們通常按照二進制遞增的順序列出輸入組合:\((0, 0)\)、\((0, 1)\)、\((1, 0)\),最後是 \((1, 1)\)。


3. 三大核心運算符(邏輯門)

你需要掌握三種主要的邏輯運算符:NOT(非)AND(與)OR(或)。讓我們詳細看看每一種。


A. NOT 運算符(反相器)

NOT 運算符是最簡單的邏輯門。它是一個一元運算符(unary operator),意思是指它只接收 \(1\) 個輸入,並將其反轉(顛倒)。

運算規則: 輸入甚麼,輸出就是完全相反的結果!
• 如果輸入是 \(0\)(假),輸出就是 \(1\)(真)。
• 如果輸入是 \(1\)(真),輸出就是 \(0\)(假)。

邏輯門符號形狀: 一個指向右方的三角形,頂端帶有一個小圓圈(稱為「反相圓圈」)。

生活比喻: 想像一個標著「相反日」的電燈開關。如果你打開開關(ON),燈反而會關掉(OFF);如果你關閉開關(OFF),燈反而會亮起(ON)。

NOT 門真值表:

輸入(\(A\)) | 輸出(\(Q = \text{NOT } A\))
\(0\) | \(1\)
\(1\) | \(0\)

NOT 重點提示: NOT 只有一個輸入端。它會反轉輸入的數值(\(0 \rightarrow 1\) 以及 \(1 \rightarrow 0\))。


B. AND 運算符(合取)

AND 運算符是一個二元運算符(binary operator),代表它接收 \(2\) 個輸入。它的條件非常嚴格!

運算規則: 只有當兩個輸入都為 \(1\)(真)時,輸出才會是 \(1\)(真)。只要有任何一個輸入是 \(0\)(假),輸出就會是 \(0\)(假)。

邏輯門符號形狀: 輸入端是一條平直的垂直線,朝向輸出端的一方則是圓弧狀(外形就像大寫英文字母 D)。

記憶小竅門: 英文單字 AND 以字母 D 結尾,而 AND 門的形狀正正就像字母 D

生活比喻: 想像一扇防盜安全門,必須同時拍門禁卡 AND(及) 輸入密碼才能開啟。如果你只有門禁卡(\(1, 0\)),門依然鎖上(\(0\));如果你只有密碼(\(0, 1\)),門同樣鎖上(\(0\))。只有當你兩者齊備(\(1, 1\))時,門才會打開(\(1\))。

AND 門真值表:

輸入 \(A\) | 輸入 \(B\) | 輸出(\(Q = A \text{ AND } B\))
\(0\) | \(0\) | \(0\)
\(0\) | \(1\) | \(0\)
\(1\) | \(0\) | \(0\)
\(1\) | \(1\) | \(1\)

AND 重點提示: 兩個輸入都必須為 \(1\),輸出才會是 \(1\)。


C. OR 運算符(相容析取)

OR 運算符同樣是一個二元運算符(接收 \(2\) 個輸入)。它比 AND 寬鬆得多!

運算規則: 只要至少有一個輸入(其中一個或兩個皆是)為 \(1\)(真),輸出就會是 \(1\)(真)。只有在兩個輸入均為 \(0\) 時,輸出才會是 \(0\)(假)。

邏輯門符號形狀: 輸入端是向內凹進的弧線,並向前彎曲延伸成一個尖銳的盾牌或箭頭形狀連至輸出端。

生活比喻: 想像一下學校的獎勵計劃:只要完成功課 OR(或) 在測驗中取得滿分,就能獲得一張貼紙獎勵。如果你完成了功課(\(1, 0\)),可獲得貼紙(\(1\));如果你測驗滿分(\(0, 1\)),也可獲得貼紙(\(1\));如果你兩樣都做到了(\(1, 1\)),當然更能獲得貼紙(\(1\))!

OR 門真值表:

輸入 \(A\) | 輸入 \(B\) | 輸出(\(Q = A \text{ OR } B\))
\(0\) | \(0\) | \(0\)
\(0\) | \(1\) | \(1\)
\(1\) | \(0\) | \(1\)
\(1\) | \(1\) | \(1\)

OR 重點提示: 只要輸入端有至少一個 \(1\),輸出就是 \(1\)。


4. 布爾邏輯在現實世界中的應用

布爾邏輯絕非單純的紙上理論——它推動著現代電腦科技的方方面面!

1. 編程(條件決策)

程式利用布爾邏輯的選擇結構(selection)陳述句(例如 IF...THEN...ELSE)及迭代結構(iteration)循環(例如 WHILE 循環)來決定執行哪些程式碼。
例子: IF score >= 50 AND attendance >= 80 THEN pass_course()
(如果 分數 >= 50 且 出席率 >= 80 則 及格)
兩個條件必須同時為「真」,學生才能通過課程!

2. 搜尋引擎與資料庫

在互聯網或資料庫中搜尋資料時,布爾運算符有助縮小或擴大搜尋範圍:
例子: 搜尋 "London" AND "Hotels" NOT "Hostels" 會指示搜尋引擎尋找同時包含 London(倫敦)和 Hotels(酒店)的網頁,但會排除任何提及 Hostels(青年旅舍)的結果。

3. 電腦硬件與處理器

在電腦的中央處理器(CPU)算術及邏輯運算部件(ALU)內部,數以百萬計的邏輯門互相連接組成電路。這些電路讓電腦能夠利用電壓高低來進行數學運算、比較數值以及儲存數據。


5. 常見錯誤與避坑指南

以下是同學們最常犯的錯誤——記得留意,千萬不要掉進這些陷阱!

錯誤 1:混淆日常用語的「或」與布爾邏輯的「OR」。
在日常生活中,如果有人問你:「你想飲水定係飲果汁?」,通常是指二選一,不能兩樣都要。但在布爾邏輯中,OR 是相容的(inclusive)。如果兩個輸入都是真(\(1 \text{ OR } 1\)),結果依然必定是 \(1\)(真)

錯誤 2:把布爾邏輯當作普通數學加法。
在常規數學中,\(1 + 1 = 2\)。但在布爾邏輯的世界裡,根本沒有「\(2\)」這個數值!一切都是二進制的:\(1 \text{ OR } 1 = 1\)。

錯誤 3:為 NOT 門畫上兩個輸入端。
請記住:AND 門和 OR 門需要 \(2\) 個輸入,但 NOT 門永遠只有 \(1\) 個單一輸入

錯誤 4:搞混邏輯門的符號形狀。
請牢記:AND 門背面是平直的(形如英文字母 D);OR 門背面是凹弧形,前端帶有尖角(形如盾牌/箭頭);NOT 門則是三角形,前端附有一個小圓圈。


6. 溫習速讀清單

完成學習前,快速複習以下核心要點:
布爾值: 只有真(\(1\))或假(\(0\))。
NOT 門: \(1\) 個輸入 \(\rightarrow\) 反轉輸入值(\(0\) 變 \(1\),\(1\) 變 \(0\))。
AND 門: \(2\) 個輸入 \(\rightarrow\) 只有當兩個輸入均為 \(1\) 時,輸出才是 \(1\)。
OR 門: \(2\) 個輸入 \(\rightarrow\) 只要至少有一個輸入為 \(1\),輸出就是 \(1\)。
真值表大小: 具有 \(n\) 個輸入端的真值表共有 \(2^n\) 行。