布尔代数 - 构建一个或门作为与非门

问题描述 投票:0回答:4

我正在努力思考如何做到这一点。据我了解,如果可以使用逻辑门的某种组合来执行每个基本逻辑运算“与”、“或”和“非”,则一组逻辑门被称为“功能完整”。声称 NAND 门功能完整。

我不明白的是如何构建一个或门作为与非门。从与非门等构建与门。我想出的公式必须具有相同的输出吗?

 X' = X NAND 1
 X + Y = ?
 X * Y = ?

通过真值表,X' = X NAND 1 是怎样的?我不确定 X NAND 1 是什么意思。 1是固定为y吗?当我看到 x NAND y 等 2 个输入之间的门时,我感到很困惑。如何构建 x+y = NAND 的真值表?或者我应该采取不同的方式?

boolean-logic boolean-expression
4个回答
2
投票

按照定义即可:

X 与 Y = ~ (X AND Y) = ~X 或 ~Y

代入 Y = 1,你会得到

X 与非 1 = ~X 或 ~1 = ~X 或 0 = ~X = X'

编辑:

为了让您了解如何使用 NAND 门构建其他门,这篇维基百科文章非常好且内容丰富。希望有帮助。

http://en.wikipedia.org/wiki/NAND_logic


1
投票

是的,

X NAND 1
就像
X NAND Y
一样,其中
Y
固定为1。与X进行比较的东西不必称为Y;它可以是任何变量、任何常量或另一个比较的结果。重要的是该值最终是 0 还是 1。

示例:

 X |是 | 1 | X 或 Y
---+---+---+--------
 0 | 0 | 1 |    0
 0 | 1 | 1 |    1
 1 | 0 | 1 |    1
 1 | 1 | 1 |    1

现在您只需将第一列中的数字分别与第二列、第三列或第四列中的数字进行比较即可执行

X AND Y
X AND 1
X AND (X OR Y)

具体而言,

NAND
,请记住它的含义与
AND
相反。它实际上代表“不和”。因此,如果您将两个东西
AND
加在一起并得到 0,那么将相同的两个东西
NAND
加在一起就会得到 1。

也就是说,你的最后一个问题没有多大意义。没有

X+Y = NAND
这样的东西。
X
Y
X+Y
是值;
NAND
是一个门。你不能将数字与门进行比较。你的问题是要求你使用
NAND
门一遍又一遍地比较事物,直到你得到一列看起来与
X+Y
相同的零和一列。

编辑:
好的,让我们看看你的问题“使用真值表 X' = X NAND 1 怎么样?”

 X | X' | 1 |   X 与 1 | X NAND 1 与 X AND 1 的相反相同
---+----+---+------------------------+------------------------ --------------------------
 0 | 1 | 1 | 0 和 1 = 0 |               1(0 的相反)
 0 | 1 | 1 | 0 和 1 = 0 |               1(0 的相反)
 1 | 0 | 1 | 1 和 1 = 1 |               0(1 的相反)
 1 | 0 | 1 | 1 和 1 = 1 |               0(1 的相反)

查看每一列,我们可以看到

X'
X NAND 1

具有相同的值

0
投票

NAND 基本上与 AND 相反:
真值表

A    B    A NAND B   A AND B   A OR B   A NOR B
0    0       1         0         o         1
0    1       1         0         1         0
1    0       1         0         1         0
1    1       0         1         1         0

通过使用这些和其余布尔运算符进行正确的组合,您应该能够根据其他运算符构造任何一个


-1
投票

快速真值表:

NAND 1 0
0    1 1
1    0 1

OR 1 0
0  1 0
1  1 1

NOT
1   0
0   1

功能完整意味着,给定一堆完整的门,您可以构造任何其他门类型。

因此,如果您构建一个具有 1 个与非门的电路,您将得到与或门完全相反的结果(输入相反)。如果您的目标是构建“或”门,则必须反转“与非”门的输入。这很容易用几个 NOT 门来实现(如果仔细观察,这与 NAND 门相同,其输入之一与逻辑 1 相关)。因此,您将这些“非”门放在“与非”门之前,瞧,“或”门就会脱落。

为了让您感到困惑,将门放在两个输入之间只是将该门用作二元运算符,例如 + 号。这与 NAND(X, 1) 或“与非门的输入为 X 和 1 时的输出”相同。

© www.soinside.com 2019 - 2024. All rights reserved.