4

我有一项任务让我发疯,因为我不知道从哪里开始。

任务如下: 转换给定的布尔表达式,使其仅包含 NAND 操作而没有否定。

c * b * a + /c * b * /a

我认为这是可能的,:D 但我不知道该怎么做,只花了几个小时转圈。

有人可以指出我正确的方向吗?

最好的问候,

更新:

感谢答案,我想我找到了解决方案:

c*b*a = /(/(c*b*a)*/(c*b*a)) = A; 

/c*b*/a = /(/(/(a*a)*b*/(c*c))*/(/(a*a)*b*/(c*c))) = B; 

c*b*a+/c*b*/a = A + B = /(/(A*A)*/(B*B))
4

3 回答 3

2

这对如何通过 NAND 构建其他逻辑门进行了细分。应该是一个简单的应用程序:

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

例如 C = A AND B 等价于

C = NOT (A NAND B)  
or
C' = (A NAND B)
C = C' NAND C'   (effectively NOT'ing A NAND B)
于 2012-03-23T19:55:33.753 回答
1

有关如何仅使用一种函数/逻辑门(在本例中为 NOR,但将其更改为 NAND 很简单)构建布尔表达式的深入讨论,请查看

实用程序员杂志 2012-03:NOR 机器

于 2012-03-23T20:02:34.660 回答
1
c * b * a + /c * b * /a

只有与非

/( /(c * b * a)  *  /( /(c * c) * b * /(a * a) ) )

NAND( NAND(c,b,a) , NAND( NAND(c,c), b, NAND (a, a)))

所以你需要,两个 3 门 NAND,三个 2 门 NAND。

非 (A) = 与非 (A,A)

A OR B = NAND(NAND(A,A),NAND(B,B))

于 2012-03-23T20:19:27.327 回答