将 XOR 转换为 NOR
Convert XOR to NOR
对于课程作业,我们被要求通过创建涉及两个输入 A
和 B
以及一个输出 O
的系统来查找如何在各种逻辑门之间进行转换。最后一次转换是从 XOR
到 NOR
,但我似乎找不到任何答案。其中每个的逻辑如下:
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 中的以下函数:
function nor(a, b) {
return ((a^1)^(a^b))^((b^0)^(a^b));
}
但这实际上是XNOR
的逻辑:
A | B | O
----------
0 | 0 | 1
1 | 0 | 0
0 | 1 | 0
1 | 1 | 1 (this should be 0 though)
还有谁能解决这个问题?
EDIT 总而言之,使用 A
、B
、常量 [=25] 创建两个参数的 NOR
运算符/函数=] 和 1
,唯一允许的运算符是 XOR
运算符 (^
).
这是不可能的。例如,您可以检查
a XOR b XOR 1
实现等价,但不能排除AND
,因为XOR
不是万能门。
不会给出作业的完整答案。但我很好奇所以:
您写的是 A
B
和 0
作为输入,但是您在代码中使用 1
作为输入。
如果不允许您使用 1
,您可能需要考虑一下 A XOR 0
是什么。
您的编辑看起来 1
是允许的,在这种情况下,据我所知,解决方案是在门的一侧使用直接输入,在另一侧使用组合输入。喜欢 ((a) ^ (a ^ b)).
EDIT 发布了没有完成解决方案的回复,因此您有一些工作要做。只是注意到可能没有解决方案。
对于课程作业,我们被要求通过创建涉及两个输入 A
和 B
以及一个输出 O
的系统来查找如何在各种逻辑门之间进行转换。最后一次转换是从 XOR
到 NOR
,但我似乎找不到任何答案。其中每个的逻辑如下:
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 中的以下函数:
function nor(a, b) {
return ((a^1)^(a^b))^((b^0)^(a^b));
}
但这实际上是XNOR
的逻辑:
A | B | O
----------
0 | 0 | 1
1 | 0 | 0
0 | 1 | 0
1 | 1 | 1 (this should be 0 though)
还有谁能解决这个问题?
EDIT 总而言之,使用 A
、B
、常量 [=25] 创建两个参数的 NOR
运算符/函数=] 和 1
,唯一允许的运算符是 XOR
运算符 (^
).
这是不可能的。例如,您可以检查
a XOR b XOR 1
实现等价,但不能排除AND
,因为XOR
不是万能门。
不会给出作业的完整答案。但我很好奇所以:
您写的是 A
B
和 0
作为输入,但是您在代码中使用 1
作为输入。
如果不允许您使用 1
,您可能需要考虑一下 A XOR 0
是什么。
您的编辑看起来 1
是允许的,在这种情况下,据我所知,解决方案是在门的一侧使用直接输入,在另一侧使用组合输入。喜欢 ((a) ^ (a ^ b)).
EDIT 发布了没有完成解决方案的回复,因此您有一些工作要做。只是注意到可能没有解决方案。