【发布时间】:2020-04-16 06:04:19
【问题描述】:
我试图找到你只是无法实现的最低级别的事情,因为它们太低级了。所以看起来所有的计算都可以从NAND gate构造。
从真值表中很容易在 JavaScript 中“实现”:
function nand(a, b) {
if (a == 0 && b == 0) return 1
if (a == 0 && b == 1) return 1
if (a == 1 && b == 0) return 1
if (a == 1 && b == 1) return 0
}
但这是作弊。因为IF statements implemented 怎么样?我不太清楚如何在代码中表示 if 语句链接,因为我不确定是否熟悉逻辑门/电路,但我很确定 IF 语句本身可以表示为 NAND 门的组合。
那么它一直是乌龟! NAND 门由更多的 NAND 门(用于 if 语句)等实现。
那么我们如何避免这种情况呢?我们是否简单地说与非门是一个公理?我想知道,因为我想知道形式验证的基础在哪里。
换句话说,我问的原因是因为我注意到每个函数都可以实现为其他函数,甚至是 IF 语句等。一切都可以一直实现到与非门。但是后来我摇摆不定,NAND也是一个函数,但它的实现是什么?!?我很困惑/困惑,需要一些关于如何思考这个问题的指导。
【问题讨论】:
-
你想要什么类型的输入?
-
你知道我不太确定,无论输入是否可以定义为公理。
-
有底。硬件中的逻辑电路是物理设备。您可以在顶部继续堆叠“使用更多 NAND 模拟 NAND”的层,但底部仍然存在,只是现在更远了。顺便说一句,JavaScript
if语句的工作方式与纯数字逻辑中的if完全不同。
标签: javascript logic bit-manipulation circuit