Arduino和Bitwise,意外的结果

Ash*_*hes 5 arduino

让我的自己在这里有点困惑.

我想测试一组位(3位)是否包含某个位置的位.

if (B110 & B010 == B010)
Run Code Online (Sandbox Code Playgroud)

(B110是要检查的数字,B010我想看的是否有)

上面的代码没有给我预期的结果,B110都是真的,B101是真的.我很确定我需要使用&(和)来测试掩码B010.

我的理解是B110和B010等于B010,B101和B010等于B000.但我的if语句是用两个测试位运行的吗?

我正在使用Arduino进行编码,我确信这对我来说是一个简单的误解,但不确定在哪里.

Maj*_*nko 12

尝试 if ((B110 & B010) == B010)

目前它正在运行,因为if (B110 & (B010 == B010))它始终是真实的.

该表所示,==!=的优先级高于&,| 等等

  • 如果有任何疑问,我会使用额外的parens.我不知道运算符的优先级,但我*知道编译器会服从parens. (2认同)