C:XNOR/专用或非门?

C:XNOR/专用或非门?,c,logic,xor,C,Logic,Xor,我试图找到用C编写XNOR门的最有效方法 if(VAL1 XNOR VAL2) { BLOCK; } 有什么建议吗 谢谢 if(!(val1^val2)) { block; } 编辑:在逻辑操作之外,您可能希望~(val1^val2)更准确,但我发现!更清晰。假定val1和val2以正常的C逻辑布尔方式处理(非零为真),那么: 将完成此操作。对于两个操作数,这非常简单: if (val1 == val2) { block; } 这应该是公认的答案。有时候,我们往往会

我试图找到用C编写XNOR门的最有效方法

if(VAL1 XNOR VAL2)
{
    BLOCK;
}
有什么建议吗

谢谢

if(!(val1^val2))
{
    block;
}

编辑:在逻辑操作之外,您可能希望
~(val1^val2)
更准确,但我发现!更清晰。

假定
val1
val2
以正常的C逻辑布尔方式处理(非零为真),那么:


将完成此操作。

对于两个操作数,这非常简单:

if (val1 == val2)
{
    block;
}

这应该是公认的答案。有时候,我们往往会把目光从最明显的事情上移开!这个答案是不正确的,因为它假设两个值相等。如果它们都是非零但值不同怎么办?
if (val1 == val2)
{
    block;
}