【问题标题】:C: XNOR / Exclusive-Nor gate?C: XNOR / 异或门?
【发布时间】:2011-02-28 08:06:30
【问题描述】:

我正在努力寻找用 C 语言编写 XNOR 门的最有效方法。

if(VAL1 XNOR VAL2)
{
    BLOCK;
}

有什么建议吗?

谢谢。

【问题讨论】:

    标签: c logic xor


    【解决方案1】:

    有两个操作数很简单:

    if (val1 == val2)
    {
        block;
    }
    

    【讨论】:

    • 这应该是公认的答案。有时,我们往往会避开最明显的事情!
    • 这个答案不正确,因为它假设两个值相等。如果它们都是非零但不同的值怎么办?
    【解决方案2】:
    if(!(val1^val2))
    {
        block;
    }
    

    编辑:在逻辑运算之外,您可能希望准确地说是~(val1^val2),但我找到了!更清晰。

    【讨论】:

      【解决方案3】:

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

      if (!val1 ^ !!val2)
      {
      
      }
      

      会成功的。

      【讨论】:

        猜你喜欢
        • 2021-08-01
        • 1970-01-01
        • 2020-04-09
        • 2011-08-31
        • 2013-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多