---
schema_version: "library-reader-v1"
source_type: "original_book"
title: "编码 隐匿在计算机软硬件背后的语言"
author: null
edition: null
publisher: null
year: null
isbn: "9787121181184"
library_document_id: "38270854-596f-4a26-8183-db8c968c6020"
source_sha256: "249786274d83909f0bddc34d77f81ed8f0b14d1eac8843c772a37a3ecbfe2cfc"
pdf_physical_page_count: 438
pdf_physical_page_index_base: 0
range_start: 140
range_count: 10
html_url: "https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020?start=140&limit=10"
markdown_url: "https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020.md?start=140&limit=10"
previous_url: "https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020.md?start=130&limit=10"
next_url: "https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020.md?start=150&limit=10"
---

# 编码 隐匿在计算机软硬件背后的语言

> 页码规则：PDF_PHYSICAL_PAGE_INDEX 是从 0 开始的权威文件物理页索引；PRINTED_PAGE 是页面中识别出的印刷页码，可能为空，二者不得混用。

## PDF_PHYSICAL_PAGE_INDEX=140 | PRINTED_PAGE=124

当开关闭合时，灯泡发光。

也可以用另外一种连接方式，使开关断开时灯泡被点亮。

这样的话，开关闭合，灯泡就会熄灭。以这种方式连接的继电器叫做反向器(inverter)。反向器不是逻辑门(一个逻辑门通常有两个或多个输入)，尽管如此，它的用处还是很广。反向器可以用如下的专门符号来表示。

$$
1 0 0 - 1 0 0 - 1 0 0
$$

由于它能将0（低电平）转换为1（高电平)，因此被称为反向器，反过来也是一样的。

$$
\sum \limits _ { 1 \leq i = 1 } ^ { \infty } \sum \limits _ { n = 1 } ^ { \infty } i
$$

利用反向器、与门和或门，我们就可以着手去设计一个自动选择理想猫咪的控制面板了。首先从开关开始，第一个开关闭合表示母猫，断开表示公猫。因此，我们可以得到两个信号，把它们分别叫做F和M，如下图所示。

当F为1时，M为0，反之亦然。同样，第二个开关闭合表示这只猫已绝育，断开则

编码隐匿在计算机软硬件背后的语言

124

## PDF_PHYSICAL_PAGE_INDEX=141 | PRINTED_PAGE=125

表示这只猫未绝育。

下面两个开关更加复杂。两个开关的不同组合分别表示四种不同的颜色。以下为两个接有电源的开关。

当两个开关都断开时（如上图所示)，表示白色。以下就是如何运用两个反向器和一个与门来得到W信号的方式。如果你选择一只白猫，W就为高电平（1)；否则，就为低电平（0）。

当两个开关断开时，两个反向器的输入均为0，两个反向器的输出（也就是与门的输入）都为1。这就意味着与门的输出为1。如果有一个开关闭合，与门的输出就为0。

要想用闭合第一个开关表示一只黑猫，可以利用一个反向器和一个与门实现。

只有当第一个开关闭合而第二个开关断开的时候，与门输出才为1。同样，如果第二个开关闭合而第一个开关断开，与门的输出也为1，我们用此来表示褐色的猫。

11门

125

## PDF_PHYSICAL_PAGE_INDEX=142 | PRINTED_PAGE=126

如果两个开关同时闭合则表示其他颜色的猫。

现在，我们将四个小电路合并成一个大电路（按照惯例，黑实心点表示交叉线之间是连接的，没有黑实心点的交叉线则表示仅仅是穿过，没有连接)。

这个电路看起来非常复杂，但是如果你仔细地沿着线路走，看清每个与门的输入是从哪来的，而暂不论这些输入去向何方，电路的工作原理就会一目了然。如果两个开关都断开，输出信号W就为1，其他都为0。如果第一个开关闭合，则输出信号B为1，其他为0，依此类推。

在连接门和反向器的时候有一些规则，影响它们的连接方式：一个门（或反向器）的输出可以作为一个或多个其他门（或反向器）的输入。但是两个或多个门（或反向器）的输出是不可以相互连接的。

这个由4个与门和2个反向器连接成的电路叫做“2-4译码器”。输入为2个二进制位，各种组合共表示4个不同的值。输出是4个信号，任何时刻只能有一个是1，至于哪一个是1取决于两个输入。利用同样的原理，我们可以构造出3-8译码器或者4-16译码

编码隐匿在计算机软硬件背后的语言

126

## PDF_PHYSICAL_PAGE_INDEX=143 | PRINTED_PAGE=127

器，等等。

简化过的选择猫咪的表达式为：

$$
( \mathbf { N } \times ( ( \mathbf { M } \times ( \mathbf { W } + \mathbf { T } ) ) + ( \mathbf { F } \times ( 1 - \mathbf { W } ) ) ) ) + \mathbf { B }
$$

在这个表达式中，每个加号(+)，必定对应电路中的一个或门。对于每一个乘号(×)，则对应一个与门，电路图如下所示。

电路图左侧的字母由上到下的顺序与它们表达式中出现的顺序一样。这些信号来源于与反向器相连的开关和2-4译码器的输出。请注意用来表示表达式中（1-W）部分的反向器的用法。

这时，你可能会说：“这一堆继电器太多了！”，是的，确实如此。每个与门和或门中有两个继电器，一个反向器中有一个继电器。但是我在这里要说的就是你必须习惯它。之后的章节中我们还会用到更多的继电器。还好你不用真的买来并在家中自己连接它们。

下面要介绍另外两种本章要用到的逻辑门。这两个门都会用到这样一个继电器，该继电器在未被触发时，其输出为高电平（这是用在反向器中的输出）。例如，在下面这种配置中，第一个继电器的输出为第二个继电器提供电源。当两个继电器全都断开时，灯泡发光。

127

## PDF_PHYSICAL_PAGE_INDEX=144 | PRINTED_PAGE=128

如果上面的开关闭合，灯泡就会熄灭。

灯泡熄灭是由于第二个继电器没有电源供应。同样的，如果下面的开关闭合，灯泡也会熄灭。

编码—隐匿在计算机软硬件背后的语言

128

## PDF_PHYSICAL_PAGE_INDEX=145 | PRINTED_PAGE=129

如果两个开关全部闭合，灯泡也不亮。

这些结果恰恰与或门相反，这个门称为“或非门”，简称NOR，用以下符号表示。

除去输出部分的小圆圈，这个符号与或门非常相像。小圆圈表示“反向”，所以或非门也可用下面的符号表示。

或非门的输出如下表所示。

这个表所显示的结果与或门正好相反，在或门中，两个输入中有一个为1输出就为1，只有两个输入都为0，输出才为0。

下面是另一种连接两个继电器的方法。

129

## PDF_PHYSICAL_PAGE_INDEX=146 | PRINTED_PAGE=130

在这种情况下，两个输出连接在一起，与或门的布局类似，但是却采用了另一种输出接法。灯泡在两个开关全断开时被点亮。

当上面的开关闭合时，灯泡依然是亮的。

同样，当只有下面的开关闭合时，灯泡也依然是亮的。

编码隐匿在计算机软硬件背后的语言

130

## PDF_PHYSICAL_PAGE_INDEX=147 | PRINTED_PAGE=131

只有当两个开关全闭合的时候，灯泡才会熄灭。

这一结果和与门恰恰相反。这种逻辑门被称为与非门，或简称NAND。与非门的符号和与门类似，但在输出部位多了一个小圆圈，意思是输出和与门正好相反。

与非门的输出如下表所示。

1

131

## PDF_PHYSICAL_PAGE_INDEX=148 | PRINTED_PAGE=132

注意与非门的输出是和与门完全相反的。与门只有当输入全为1的时候输出才为1，否则输出就为0。

到此为止，我们已经看到可以用四种不同的方式来连接有两个输入、一个输出的继电器，每一种方式的行为功能都不一样。为了避免重复画继电器，我们将它们称为逻辑门，并用电气工程师们所使用的专门符号来表示它们。特定逻辑门的输出取决于它的输入，输出与输入的关系可总结为以下几个表格。

现在，我们已经有四个逻辑门和一个反向器。把这些工具组合到一起其实就是原始的继电器，如下图所示。

这叫做缓冲器(buffer)，可用如下符号表示。

除了输入端的小圆圈，这个符号与反向器是很相似的。很明显，缓冲器“没有什么作用”，它的输入与输出是相同的。

编码隐匿在计算机软硬件背后的语言

132

## PDF_PHYSICAL_PAGE_INDEX=149 | PRINTED_PAGE=133

但是在输入信号很微弱的时候，缓冲器就可以派上用场。之前提到过，这也就是很多年前在电报机中使用继电器的原因。另外，缓冲器还可以用于延迟一个信号。这是因为继电器需要一点时间几分之一秒才会被触发。

本书从这里开始，继电器将会极少出现了。取而代之地，以后的电路会由缓冲器、反向器、四种基本逻辑门和其他由逻辑门组成的复杂电路（如2-4译码器）组成。当然，所有这些器件也是由继电器构成的，但我们用不着直接使用它了。

前面在建立2-4译码器的时候，曾出现过这样一个小电路。

两个输入信号经过反向器后作为与门的输入。这样的组合有时可以去掉反向器而画成如下的形式。

注意与门输入端的小圆圈。这些小圆圈表示信号在那一点被反转将0（低电平）转换为1(高电平)，反之亦然。

实际上，带有两个反向输入的与门和或非门是等价的。

只有当输入都为0的时候，其输出才为1。

类似的，带有两个反向输入的或门和与非门也是等价的。

11门

133

下一段：[继续读取](https://workshop.closeclaw.top/api/ai/read/38270854-596f-4a26-8183-db8c968c6020.md?start=150&limit=10)
