==优先级高于按位AND,XOR和OR的基本原理是什么?

时间:2012-06-07 13:13:59

标签: c++ c bitwise-operators operator-precedence comparison-operators

在C ++中,==和!=的优先级高于按位AND,XOR和OR的基本原理是什么?

operator==operator!=operator&之后让operator^operator|更加自然。我想了解动机,以便我能更好地记住顺序。

例如,我认为以下类型的用法很常见:

if (bitFields & value == 0) { // Incorrect test.
  // Do Something.
}

由于==结果为1或0,为什么要将它用于按位运算?相反,上述内容必须写成:

if ((bitFields & value) == 0) { // Correct test.
  // Do Something.
}

获得在比较为零之前完成按位AND的预期含义。

1 个答案:

答案 0 :(得分:6)

  1. 来自C
  2. 的历史
  3. 考虑使用if声明
  4. 中的功能

    e.g。

    if (func1() == 2 & func2() == 3)
    

    ==的优先级高于&,确保调用这两个函数。