XNOR是否存在与XOR类似的modulo等效表达及通用计算规则
XNOR的等效表达式及多输入场景适配说明
- 2输入场景下,XNOR(同或门)的逻辑是两个输入值相等时输出1,不等时输出0,对应的等效表达式有两种常见写法:
- 基于XOR衍生:
XNOR(a, b) = NOT (a XOR b) - 模运算等效表达:
XNOR(a, b) = (a + b + 1) % 2,也可等价写作1 - (a + b) % 2
- 基于XOR衍生:
- 任意n输入场景下,只要遵循数字逻辑和编程领域的通用定义:
XOR:输入中1的个数为奇数时输出1,为偶数时输出0
XNOR:输入中1的个数为偶数时输出1,为奇数时输出0
XNOR的模运算等效表达完全支持任意数量的输入,通用公式为:XNOR(x1, x2, ..., xn) = 1 - (x1 + x2 + ... + xn) % 2
也可等价写作(x1 + x2 + ... + xn + 1) % 2 - 注意:少部分非通用场景下会将多输入XNOR定义为「所有输入值完全相等时输出1」,这种特殊定义下不适用上述通用公式,使用前先确认场景的定义规则即可。
- 编程实践中无需手动累加求和取模,直接对所有输入依次做异或运算后取反即可,写法更简洁高效。以Python为例,3输入同或可写为
not (a ^ b ^ c),4输入可写为not (a ^ b ^ c ^ d),以此类推即可。
内容的提问来源于stack exchange,提问作者itsreallyfather
相关产品推荐
相关产品推荐

