計算器2026-05-10

布林代數計算機:真值表、迪摩根定律和邏輯簡化

你寫的每個 "if" 陳述式、你篩選的每個資料庫查詢以及你看到的每個搜尋引擎結果都由布林邏輯驅動——這是一個每個變數嚴格為真或假(1 或 0)的數學系統。喬治·布林在 1854 年的《思維定律》中發表了這個代數,它在數學系靜靜地躺了近一個世紀,直到克勞德·夏農意識到它可以描述電氣開關電路,為有史以來每台數位電腦奠定了基礎。今天,布林代數支撐著從 SQL WHERE 子句到搜尋引擎查詢再到擁有數十億邏輯閘的微處理器設計的一切。我們的免費布林代數計算機允許你輸入任何布林運算式(最多 8 個變數),即時檢視其真值表,使用代數規則和迪摩根定律簡化它,並檢視等效的邏輯閘圖——一切都在瀏覽器中執行。

rule

布林邏輯計算器

免費 · 無需註冊

免費試用此工具 →open_in_new

分步指南

1

輸入你的布林運算式

使用標準記號輸入你的運算式:& 或 AND 的與,| 或 OR 的或,! 或 NOT 的非,^ 或 XOR 的互斥或。你可以使用括號進行分組,變數名稱如 A、B、C 到 H。範例:(A & B) | (!A & C) 表示「要麼 A 和 B 都為真,要麼 A 為假且 C 為真」。計算機即時驗證語法,並向你顯示帶有適當數學符號的自動格式化版本的運算式。

2

檢視真值表

真值表顯示每種可能的輸入值組合(n 個變數有 2 的 n 次方列)及結果輸出。每列顯示在給定特定輸入的情況下運算式求值為真還是假。對於 3 個變數(A、B、C),你將看到 8 列;對於 4 個變數,16 列。真值表採用顏色編碼——真輸出為綠色,假為灰色——因此你可以立即掃描模式。這是理解布林運算式實際含義的最快方法。

3

應用簡化並檢視電路

點擊「簡化」,計算機應用布林代數恆等式將你的運算式簡化到最簡形式。逐步面板顯示每個階段應用了哪條規則:冪等律(A&A=A)、互補律(A&!A=0)、吸收律(A|(A&B)=A)和迪摩根定律。簡化後的運算式與邏輯閘圖一起顯示,使用標準 ANSI/IEEE 符號——AND(平背)、OR(曲背)、NOT(帶氣泡的三角形)、XOR(帶額外線的 OR)。

使用技巧與最佳實踐

check_circle

迪摩根定律是兩個最強大的布林恆等式:!(A & B) = !A | !B,以及 !(A | B) = !A & !B。它們允許你將 AND 轉換為 OR,反之亦然,同時將 NOT 向內推。用實際術語說:「不是(下雨且冷)」等於「不下雨或不冷」。這些定律對於簡化複雜的 SQL WHERE 子句和搜尋引擎查詢至關重要。

check_circle

XOR(互斥或)運算子在恰好一個輸入為真時返回真——它是「一個或另一個,但不是兩者」運算子。與常數 1 的 XOR 等同於 NOT:A XOR 1 = !A。XOR 也是自身的逆:(A XOR B) XOR B = A。這種自逆特性使 XOR 成為許多加密方案和基本校驗和演算法的基礎。

check_circle

NAND 和 NOR 被稱為「通用閘」,因為你可以僅使用 NAND 閘(或僅使用 NOR 閘)建構 AND、OR 和 NOT。理論上存在的每個數位電路都可以簡化為 NAND 閘網路。事實上,NAND 快閃記憶體(用於 SSD 和 USB 磁碟機)就是從這種閘得名的。

check_circle

在程式碼中撰寫布林條件時,條件的順序對短路求值很重要。在 `if (cheapCheck() && expensiveCheck())` 中,如果 cheapCheck() 返回 false,expensiveCheck() 永遠不會執行。將你最快失敗的條件放在第一位——這是在緊密迴圈中複合的簡單最佳化。

check_circle

真值表呈指數增長:n 個變數意味著 2 的 n 次方列。在 8 個變數時,那是 256 列——仍然可管理。在 32 個變數時,你需要超過 40 億列。這就是為什麼大型數位電路的形式驗證使用 SAT 求解器和二元決策圖而不是暴力真值表。

check_circle

SQL 的三值邏輯(TRUE、FALSE、NULL)擴展了經典布林代數。在 SQL 中:NULL AND FALSE = FALSE(短路),但 NULL AND TRUE = NULL(未知),NULL OR TRUE = TRUE(短路)。當撰寫帶有可為空欄位的資料庫查詢時,始終考慮 NULL 傳播——這是最微妙的查詢錯誤的最常見來源之一。

check_circle

卡諾圖(K-map)是對於最多 4 個變數的代數簡化的視覺化替代方案。將真值表排列在網格中,相鄰儲存格恰好有一個變數不同;圈出大小為 1、2、4 或 8 的 1 的組;每組對應一個簡化的積項。我們的計算機在代數簡化旁邊顯示 2-4 變數運算式的 K-map。

常見問題解答

迪摩根定律陳述:(1) NOT (A AND B) = (NOT A) OR (NOT B),以及 (2) NOT (A OR B) = (NOT A) AND (NOT B)。它們描述了否定如何在 AND/OR 上分配。實際應用:否定複合 SQL 條件——`WHERE NOT (status="active" AND age>18)` 變為 `WHERE status!="active" OR age<=18`;撰寫否定搜尋查詢——「dogs NOT (poodles OR chihuahuas)」變為「dogs NOT poodles AND NOT chihuahuas」;透過將反相器推過閘來簡化電路設計。

布林代數是計算的隱藏語法——從 CPU 中的邏輯閘到 SQL 中的 WHERE 子句再到 Google 中的搜尋運算子。我們的計算機使這個代數可見,簡化運算式,產生真值表,並繪製你的邏輯描述的電路。立即試用,看看你的條件真正意味著什麼。

免費試用此工具 →open_in_new