跳转到内容

实用电子/逻辑/布尔运算

来自维基教科书,开放世界中的开放书籍

布尔代数(以数学家 乔治·布尔 命名)是一种只处理 1 和 0 的算术形式。它只有三个运算符:加法、乘法和否定。我们将看到这些分别对应于或、与和非。

为了方便起见,有时会包含异或运算,我们将在 异或部分 中看到如何使用它。

变量用大写字母表示,这与“真实”代数不同,在“真实”代数中可以使用小写字母。

本页面不涉及布尔运算符的恒等式和性质,只涉及其与逻辑函数的等价关系。这些性质在 布尔恒等式 页面中讨论。

负数、减法和除法

[编辑 | 编辑源代码]

由于 1 和 0 是布尔代数中唯一允许的数字,因此不存在负数。

这意味着不存在减法,因为 0-1 等于 0+(-1)。-1 不是允许的数字,因此减法的概念在布尔代数中毫无意义。

由于除法只是减法的变体,就像乘法是加法的变体一样,因此除法在布尔代数中也是毫无意义的。

考虑以下总和

前三个是有意义的,因为真实代数也是如此。然而,第四个语句不同,因为它违反了真实算术。布尔代数不允许 2,因此它不能是答案,并且 1+1 肯定不等于 0,因此答案必须是 1。

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

如果我们将上面的等式以表格形式显示在左边,很明显布尔加法运算符等效于逻辑 。这就是逻辑或运算符使用加号作为其符号的原因


考虑以下等式

正如您所看到的,乘法在布尔代数中的行为与在真实算术中的行为完全相同:任何乘以零的数都会变成零,任何乘以一的数都会保持不变。

您应该能够看到乘法运算符与逻辑 运算符具有完全相同的效果,这就是为什么与函数用乘法表示的原因

由于布尔代数中只有两个数字,如果我们知道一个变量的值,那么我们也会自动知道它不是的数字的值。这个数字是该变量的补码。因此,0 是 1 的补码,而 1 是 0 的补码。一个变量的补码写成该变量上有一条线

如果变量上不能画线,例如在这样的文本中,则在变量之前使用“¬”符号。如果变量上可以画线,则不应使用此符号。有时,会在变量之后放置一个“撇号”(')符号,但决不应使用此符号。

补运算等效于逻辑非。

NOR 和 NAND

[edit | edit source]

这两个逻辑函数由它们各自的底层函数的补运算组成。

XOR 和 XNOR

[edit | edit source]

XOR 不能表示为简单的布尔函数,如加法或乘法,因此,它不受布尔代数的直接支持。然而,它确实有一个符号——圆圈中的加号。

XNOR 函数表示为

由于布尔代数的规则和恒等式不适用于这个发明函数,因此,在编写和简化逻辑语句时,使用以下等效替代

.

很容易理解这个替代是如何工作的。XOR 函数如果只有一个输入为高电平,则输出为高电平。在这种情况下,一个输入的补运算等于另一个输入。当输入相同(即 XOR 函数返回低电平)时,一个输入和另一个输入的补运算将不同。因此,通过将第一个输入与第二个输入的补运算进行 AND 运算,并将第一个输入的补运算与第二个输入进行 AND 运算,我们始终可以在只有一个输入为高电平时,在其中一个 AND 门的输出处获得一个高电平。通过将这两个 AND 门的输出进行 OR 运算,我们将在只有当一个输入为高电平而另一个输入为低电平时,在最终输出处获得一个高电平。

这使用了此处所示的替代门电路布置之一。

XNOR 可以代换为

.

摘要

[edit | edit source]
  • 布尔加法等效于逻辑或。
  • 布尔乘法等效于逻辑与。
  • 布尔补运算等效于逻辑非。
  • XOR 拥有自己的特殊符号,因为它没有直接包含在布尔代数的框架中。
华夏公益教科书