首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将异或转换为NOR

将异或转换为NOR
EN

Stack Overflow用户
提问于 2015-01-22 03:56:49
回答 2查看 2K关注 0票数 0

在一个课程作业中,我们被要求通过创建涉及两个输入AB以及一个输出O的系统来查找如何在各种逻辑门之间进行转换。最后一次转换是从XORNOR,但我似乎找不到任何答案。每一种方法的逻辑如下:

代码语言:javascript
复制
XOR
A | B | O
----------
0 | 0 | 0
1 | 0 | 1
0 | 1 | 1
1 | 1 | 0

NOR
A | B | O
----------
0 | 0 | 1
1 | 0 | 0
0 | 1 | 0
1 | 1 | 0

为了简单起见,我将请求函数NOR而不是图表的伪代码。XOR二进制运算符是^。我最近看到的是JavaScript中的以下函数:

代码语言:javascript
复制
function nor(a, b) {
    return ((a^1)^(a^b))^((b^0)^(a^b));
}

但这实际上是XNOR的逻辑

代码语言:javascript
复制
A | B | O
----------
0 | 0 | 1
1 | 0 | 0
0 | 1 | 0
1 | 1 | 1 (this should be 0 though)

还有谁能搞清楚这件事?

编辑进行总结,根据需要使用AB、常量01创建一个由两个参数组成的NOR操作符/函数,唯一允许的操作符是XOR运算符(^)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-22 04:47:51

这是不可能的。例如,您可以检查

代码语言:javascript
复制
a XOR b XOR 1

要实现等价,但不能将AND排除在外,因为XOR不是一个通用的门。

票数 2
EN

Stack Overflow用户

发布于 2015-01-22 04:52:34

不会给家庭作业提供完整的解决方案。但我很好奇所以:

编写时使用A B0作为输入,但在代码中使用1作为输入。

如果不允许使用1,则可能需要考虑什么是A XOR 0

您的编辑看起来类似于1,在这种情况下,就我所能看到的情况而言,解决方案是在门的一侧使用直接输入,而将组合输入作为另一侧的输入。比如(a )^(a^b)

编辑发布的回复没有一个完整的解决方案,所以你有一些工作要做。只要注意到这是可能的,就没有解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28081044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档