为什么“n& 1 == 0”总是返回false?

时间:2016-04-16 02:49:30

标签: c++ c c++11

为什么表达式n&1 == 0总是返回false,其中n是整数?

我想使用按位运算来确定n是否为偶数。但是,它总是返回false。 (clion还提示我它总是返回false)。

更重要的是,当我使用n&1 != 0确定n是否为奇数时,它会起作用。

1 个答案:

答案 0 :(得分:19)

因为运营商的优先权。

==的优先级高于&运算符,因此1 == 0首先计算为0.然后执行逐位AND,最终返回false。