在这里让我有点困惑。

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

if (B110 & B010 == B010)

(B110是要检查的号码,B010是我要查看的位是否存在)

上面的代码并没有给我期望的结果,B110是真实的,而B101是真实的。我非常确定我需要使用&(and)来测试蒙版B010。

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

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

最佳答案

试试if ((B110 & B010) == B010)
目前,它以if (B110 & (B010 == B010))的形式运行,这将永远是正确的。

this table所示,==和!=的优先级比&,| |高。等等。

关于Arduino和Bitwise,出乎意料的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6427971/

10-11 23:07