首页新闻招聘找找看知识库

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

0
[待解决问题]

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

if((a&b)==a)

....

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

铁手三郎的主页 铁手三郎 | 菜鸟二级 | 园豆:291
提问于:2018-06-13 15:16
< >
分享
所有回答(3)
0

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

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

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

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

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

让我发会呆 | 园豆:1886 (小虾三级) | 2018-06-13 16:55
0

 完全不是一回事.

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

值是true

吴瑞祥 | 园豆:26132 (高人七级) | 2018-06-13 20:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册