我试图围绕如何做到这一点。 据我所知,如果可以使用门的某些组合来执行每个基本逻辑运算AND,OR和NOT,则将一组逻辑门称为“功能完整”。声称NAND门在功能上是完整的。
我不明白的是如何构建OR门作为nand门。从NAND门等构建AND门。我想出的公式必须具有相同的输出吗?
X' = X NAND 1
X + Y = ?
X * Y = ?
使用真值表X'= X NAND 1是什么?
我不确定X NAND 1的含义是什么..我理解1固定为y?
当我看到2个输入之间的门如x NAND y
时,我感到困惑如何构建x + y = NAND的真值表?
或者我应该采用不同的方式吗?
答案 0 :(得分:2)
按照定义:
X NAND Y =〜(X AND Y)=〜X OR~Y
替换Y = 1并看到你会得到
X NAND 1 = ~X OR~1 = ~X OR 0 = ~X = X'
修改强>
为了让您了解如何使用NAND门构建其他门,这篇维基百科文章非常好且信息丰富。希望它有所帮助。
答案 1 :(得分:1)
是的,X NAND 1
与X NAND Y
类似,Y
固定为1.您要比较X的事情不必称为Y;它可以是任何变量,任何常数或另一个比较的结果。最重要的是最终值是0还是1。
示例:
X | Y | 1 | X OR 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 AND 1 | X NAND 1 is the same as the opposite of X AND 1 ---+----+---+-------------+------------------------------------------------- 0 | 1 | 1 | 0 AND 1 = 0 | 1 (opposite of 0) 0 | 1 | 1 | 0 AND 1 = 0 | 1 (opposite of 0) 1 | 0 | 1 | 1 AND 1 = 1 | 0 (opposite of 1) 1 | 0 | 1 | 1 AND 1 = 1 | 0 (opposite of 1)
查看每列,我们可以看到X'
与X NAND 1
具有相同的值
答案 2 :(得分: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
通过使用这些和其余的布尔运算符进行正确的组合,您应该能够根据其他运算符构造任何一个
答案 3 :(得分:-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个与非门的电路,则会得到与“或”门完全相反的情况(输入反转)。如果您的目标是构建OR门,则必须反转NAND门的输入。这对于一对非门很容易做到(如果仔细观察,就像NAND门一样,其输入与逻辑1相连)。所以你把那些NOT门放在你的NAND门之前和 voila ,OR门就会掉出来。
为了让您感到困惑,将门放在两个输入之间就是将该门用作二元运算符,如+符号。这与说NAND(X,1)或“当NAND输入为X和1时NAND门的输出”相同。