首页 新闻 会员 周边

“位与运算”和“直接比较”优势是什么?

0
[已解决问题] 解决于 2018-06-29 10:09

看到代码中进行比较时,采用下面的方式

if((a&b)==a)

....

这种方式与if(a==b)的区别是什么,使用场景是什么?

铁手三郎的主页 铁手三郎 | 菜鸟二级 | 园豆:311
提问于:2018-06-13 15:16
< >
分享
最佳答案
1

 完全不是一回事.

if((a&b)==a) 的意思是a是b的子集.不需要a==b,在a为0的位上b为1.但a为1的位上b也为1的情况.

值是true

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29449 | 2018-06-13 20:32
其他回答(2)
0

首先 ==和&优先级==高。所以a&b==a   意思是a不为空并且a和b相等 这两个条件必须同时满足才进到if里面。而a==b仅仅只是判断a和b值是否相等。  这个个人的理解

.NET_海 | 园豆:480 (菜鸟二级) | 2018-06-13 15:22

刚刚写的匆忙,少了个括号。是if((a&b)==a)这样的判断方式

支持(0) 反对(0) 铁手三郎 | 园豆:311 (菜鸟二级) | 2018-06-13 15:27
0

感觉是你理解错了吧,这个就是&运算后比较,没有什么优势不优势的吧

让我发会呆 | 园豆:2929 (老鸟四级) | 2018-06-13 16:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册