首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino和Bitwise,意外结果

Arduino和Bitwise,意外结果
EN

Stack Overflow用户
提问于 2011-06-21 19:03:50
回答 2查看 636关注 0票数 5

把我自己搞糊涂了。

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

代码语言:javascript
复制
if (B110 & B010 == B010)

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

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

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

我用Arduino编写代码,我确信这只是我的一个简单的误解,但不确定在哪里。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-21 19:06:16

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

目前,它是以if (B110 & (B010 == B010))身份运行的,这一点永远是正确的。

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

票数 12
EN

Stack Overflow用户

发布于 2011-06-21 23:54:08

在这个测试中,"== B010“实际上是不必要的。在C中,0表示"false“,而任何非零值都被认为是”true“。B110 & B010 (或任何其他设置了该位的值)将返回B010,它不等于0,因此测试成功。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6427971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档