📜  布尔表达式和函数

📅  最后修改于: 2021-01-08 06:13:08             🧑  作者: Mango


布尔代数是逻辑代数。它处理的变量可以有两个离散值,0(假)和1(真);和具有逻辑意义的操作。操纵符号逻辑的最早方法是乔治·布尔(George Boole)发明的,后来被称为布尔代数(Boolean Algebra)。

布尔代数因其在交换理论,构建基本电子电路和数字计算机设计方面的广泛适用性,现已成为计算机科学中不可或缺的工具。

布尔函数

布尔函数是数学函数$ f的一种特殊类型:X ^ n \ rightarrow X $ n为度,其中$ X = \ lbrace {0,1} \ rbrace $是布尔域,而n是非负整数。它描述了如何从布尔输入中导出布尔输出的方法。

示例-令$ F(A,B)= A’B’$。这是度2的函数,从有序的布尔变量对对到集合$ \ lbrace {0,1} \ rbrace $,其中$ F(0,0)= 1,F(0,1)= 0, F(1,0)= 0 $和$ F(1,1)= 0 $

布尔表达式

布尔表达式始终产生布尔值。布尔表达式由布尔常量(True或False),布尔变量和逻辑连接词的组合组成。每个布尔表达式表示一个布尔函数。

示例-$ AB’C $是布尔表达式。

布尔身份

双补法

$ \ sim(\ sim A)= A $

补充法

$ A + \ sim A = 1 $(或表格)

$ A。 \ sim A = 0 $(与表格)

等幂法

$ A + A = A $(或表格)

$ A。 A = A $(AND表格)

身份法

$ A + 0 = A $(或表格)

$ A。 1 = A $(与表格)

统治法

$ A + 1 = 1 $(或表格)

$ A。 0 = 0 $(与表格)

交换律

$ A + B = B + A $(或表格)

$ A。 B = B。 A $(AND表格)

关联法

$ A +(B + C)=(A + B)+ C $(或表格)

$ A。 (B.C)=(A.B)。 C $(和表格)

吸收定律

$ A。 (A + B)= A $

$ A +(A .B)= A $

简化法

$ A。 (\ sim A + B)= A。 B $

$ A +(\ sim A .B)= A + B $

分配法

$ A +(B .C)=(A + B)。 (A + C)$

$ A。 (B + C)=(A.B)+(A.C)$

德摩根定律

$ \ sim(A .B)= \ sim A + \ sim B $

$ \ sim(A + B)= \ sim A。 \ sim B $

规范形式

对于布尔表达式,有两种规范形式-

  • 最小项和(SOM)形式
  • maxterms(POM)形式的乘积

最小和(SOM)或产品和(SOP)形式

最小项是所有直接或互补形式的变量的乘积。任何布尔函数都可以表示为其1分钟项的总和,而该函数的逆可以表示为其0分钟项的总和。因此,

F(变量列表)= ∑(一分钟指数列表)

F’(变量列表)= ∑(0分钟指数列表)

A B C Term Minterm
0 0 0 x’y’z’ m0
0 0 1 x’y’z m1
0 1 0 x’yz’ m2
0 1 1 x’yz m3
1 0 0 xy’z’ m4
1 0 1 xy’z m5
1 1 0 xyz’ m6
1 1 1 xyz m7

$ F(x,y,z)= x’y’z’+ xy’z + xyz’+ xyz $

$ F(x,y,z)= m_0 + m_5 + m_6 + m_7 $

因此,

$ F(x,y,z)= \ sum(0,5,6,7)$

现在我们将找到$ F(x,y,z)$的补数

$ F’(x,y,z)= x’yz + x’y’z + x’yz’+ xy’z’$

$ F’(x,y,z)= m_3 + m_1 + m_2 + m_4 $

因此,

$ F’(x,y,z)= \ sum(3,1,2,4)= \ sum(1,2,3,4)$

Maxterms(POM)或Summ(POS)形式的乘积

maxterm是所有直接或补充形式的变量的加法。任何布尔函数都可以表示为其0-maxterms的乘积,而该函数的逆可以表示为其1-maxterms的乘积。因此,

F(变量列表)= $ \ pi $(0个最大项索引的列表)。

F’(变量列表)= $ \ pi $(1-maxterm索引列表)。

A B C Term Maxterm
0 0 0 x + y + z M0
0 0 1 x + y + z’ M1
0 1 0 x + y’ + z M2
0 1 1 x + y’ + z’ M3
1 0 0 x’ + y + z M4
1 0 1 x’ + y + z’ M5
1 1 0 x’ + y’ + z M6
1 1 1 x’ + y’ + z’ M7

$ F(x,y,z)=(x + y + z)。 (x + y + z’)。 (x + y’+ z)。 (x’+ y + z)$

或者, $ F(x,y,z)= M_0。 M_1。 M_2。 M_4 $

因此,

$ F(x,y,z)= \ pi(0,1,2,4)$

$ F”(x,y,z)=(x + y’+ z’)。 (x’+ y + z’)。 (x’+ y’+ z)。 (x’+ y’+ z’)$

$ F(x,y,z)= M_3。 M_5。 M_6。 M_7 $

因此,

$ F’(x,y,z)= \ pi(3,5,6,7)$

逻辑门

布尔函数通过使用逻辑门来实现。以下是逻辑门-

非门

非门将输入的一位转换为输出的一位。

A ~A
0 1
1 0

与门

“与”门是逻辑门,仅当其所有输入都为高电平时才提供高输出,否则会提供低输出。点(。)用于显示AND操作。

A B A.B
0 0 0
0 1 0
1 0 0
1 1 1

或门

或门是一种逻辑门,如果至少一个输入为高,则该逻辑门提供高输出。加号(+)用于显示“或”运算。

A B A+B
0 0 0
0 1 1
1 0 1
1 1 1

与非门

NAND门是一种逻辑门,仅当其所有输入都为高电平时才提供低输出,否则它将提供高输出。

A B ~(A.B)
0 0 1
0 1 1
1 0 1
1 1 0

或非门

或非门是一种逻辑门,如果两个输入均为低电平,则该逻辑门将提供高输出,否则,将提供低输出。

A B ~(A+B)
0 0 1
0 1 0
1 0 0
1 1 0

XOR(异或)门

XOR门是一个逻辑门,如果输入不同,它会提供高输出,否则它会提供低输出。

A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

X-NOR(异或)门

EX-NOR门是逻辑门,如果输入相同,则该逻辑门提供高输出,否则它提供低输出。

A B A X-NOR B
0 0 1
0 1 0
1 0 0
1 1 1