看到代码中进行比较时,采用下面的方式
if((a&b)==a)
....
这种方式与if(a==b)的区别是什么,使用场景是什么?
完全不是一回事.
if((a&b)==a) 的意思是a是b的子集.不需要a==b,在a为0的位上b为1.但a为1的位上b也为1的情况.
值是true
首先 ==和&优先级==高。所以a&b==a 意思是a不为空并且a和b相等 这两个条件必须同时满足才进到if里面。而a==b仅仅只是判断a和b值是否相等。 这个个人的理解
刚刚写的匆忙,少了个括号。是if((a&b)==a)这样的判断方式
感觉是你理解错了吧,这个就是&运算后比较,没有什么优势不优势的吧