在这里让我有点困惑。
我想测试一组位(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/