跳转至内容

计算机硬件基础:逻辑门

来自 Wikibooks,开放的书籍,开放的世界

试卷 2 - ⇑ 计算机系统基础 ⇑

← 程序翻译器类型 逻辑门 布尔门组合 →


1854 年,英国数学家 乔治·布尔 开发了布尔代数。与使用数字的代数不同,布尔代数使用真值,**真** (1) 和**假** (0)。通过使用真值定义句子并对这些真值执行运算,您可以找出复杂语句的总体结论。布尔代数对计算机科学产生了巨大影响,计算机理解的语言是一种 1 和 0 的语言,也就是布尔语言。

0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 1
0 1
1 0
布尔代数在真值表中的示例

逻辑门是执行布尔输入运算的硬件,使我们能够从抽象的布尔代数中创建复杂的设备。逻辑门是硬件的基本构建块,处理器将由数十亿个逻辑门组成。逻辑门通常有一个或两个输入,在以下示例中定义为 A 和 B。您需要了解六种类型的逻辑门

非门 (NOT)

[编辑 | 编辑源代码]
非门只有一个输入并输出一个输出

一个非门 将始终给出与输入相反的输出,例如 1 (非门) 0。非门接受一个布尔输入并将其翻转。可以进行双重非运算。这将反转原始的非运算。符号上将会有额外的横线。

在布尔代数中,我们通过在字母上方放置一个横线 () 或字母 () 来编写 符号。

以下是非门工作的示例
  • NOT(不下雨) = 下雨

为了总结,以下是一个真值表,显示了 A 和 之间的关系

A
0 1
1 0

与门 (AND)

[编辑 | 编辑源代码]
与门接受两个输入并将它们组合起来形成一个输出

一个与门 将组合两个输入的布尔值(您可以获得超过两个输入,但我们不需要在这里了解这种类型的逻辑门)。当且仅当两个输入都为真时,它才会输出真。如果任何一个输入为假,它将输出假。

在布尔代数中,我们通过在两个 () 或多个 () 值之间放置一个点来编写 符号。

以下是与门工作的示例
  • 六大于四,并且猫大于仓鼠 = TRUE

记住与门如何工作的一个简单方法是把它想象成一个用来打开灯泡的电路。如果两个开关都打开,灯泡就会亮;如果任何一个开关关闭,灯泡就不会亮。

与门等效的电路图

总而言之,这里是一个真值表,显示了两个输入 A 和 B 的所有不同值以及将这些值进行与运算的结果。

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

或 (+)

[edit | edit source]
或门接收两个输入并将它们组合成一个输出。

一个门将组合两个输入的布尔值。如果一个或多个输入为真,则输出将为真。如果两个输入都为假,则输出将为假。

在布尔代数中,我们通过在两个 () 或多个 () 值之间放置一个加号来表示符号。

以下是或门工作的一些示例。
  • 人类有两条腿或大象有 8 条腿 = 真

记住或门如何工作的一个简单方法是把它想象成一个用来打开灯泡的电路。如果一个或多个开关打开,灯泡就会亮;如果两个开关都关闭,灯泡就不会亮。

与或门等效的电路图

总而言之,这里是一个真值表,显示了两个输入 A 和 B 的所有不同值以及将这些值进行或运算的结果。

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

异或 ()

[edit | edit source]
异或门接收两个输入并将它们组合成一个输出。

一个异或门将组合两个输入的布尔值。如果只有一个输入为真,则输出将为真。如果两个输入都为假或两个输入都为真,则输出将为假。

在布尔代数中,我们通过在两个 () 或多个 () 值之间放置一个带圆圈的加号来表示异或符号。

以下是异或门工作的一些示例。
  • 下雨异或不下雨 = 真

总而言之,这里是一个真值表,显示了两个输入 A 和 B 的所有不同值以及将这些值进行异或运算的结果。

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

与非门 (NAND)

[edit | edit source]
与非门接收两个输入并将它们组合成一个输出。

非门 将组合两个输入的布尔值,并将它们一起进行与运算,然后对结果进行非运算。如果**一个或更少**输入为真,则输出为真。如果两个输入都为真,则输出为假。要绘制一个非门,您需要绘制一个与门并在前面添加一个圆圈,如上图所示。

在布尔代数中,我们通过采用与方程并对结果进行非运算来写一个符号()。

以下是工作中的非门示例:
  • (A=A) 非 (A<>B) = TRUE

总而言之,这里是一个真值表,显示了两个输入 A 和 B 的所有不同值以及将这些值一起进行非运算的结果。

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

或非门 (NOR)

[edit | edit source]
非门接受两个输入并将它们组合起来形成一个输出。

非门 将组合两个输入的布尔值,并将它们一起进行或运算,然后对结果进行非运算。如果**没有**输入为真,则输出为真。如果任一或两个输入为真,则结果为假。要绘制一个非门,您需要绘制一个或门并在前面添加一个圆圈,如上图所示。

在布尔代数中,我们通过采用或方程并对结果进行非运算来写一个符号()。

以下是工作中的非门示例:
  • (A=A) 非 (A<>B) = FALSE
A B
0 0 0
1
0 1 1
0
1 0 1
0
1 1 1
0


练习:逻辑门

给出或语句的符号和门图。

回答

+

给出与语句的符号和门图。

回答

.

给出异或语句的符号和门图。

回答

给出以下方程的答案:

TRUE AND TRUE

回答

TRUE

TRUE + FALSE

回答

TRUE

TRUE + TRUE

回答

TRUE

TRUE TRUE

回答

FALSE

NOT(TRUE) . TRUE

回答

FALSE

回答

TRUE

画一个与非门和真值表

回答

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

完成下表

名称 与非门 (NAND) 或非门 (NOR) 与门 (AND) 非门 (NOT) 或门 (OR) 异或门 (XOR)
符号
真值表

回答

名称 与非门 (NAND) 或非门 (NOR) 与门 (AND) 非门 (NOT) 或门 (OR) 异或门 (XOR)
符号
真值表
A B
0 0 0
1
0 1 0
1
1 0 0
1
1 1 1
0
A B
0 0 0
1
0 1 1
0
1 0 1
0
1 1 1
0
A B A.B
0 0
0
0 1
0
1 0
0
1 1
1
A
0 1
1 0
A B A+B
0 0
0
0 1
1
1 0
1
1 1
1
A B
0 0
0
0 1
1
1 0
1
1 1
0
华夏公益教科书