据我所知,&运算符类似于&&运营商除了&&&只检查第二个是否第一个是真的,而&无论第一个结果如何,都检查两者。基本上&&只需节省一点时间和力量。
如果是这样,那么这段代码是如何工作的?
int l = 0;
if ((l & 8) != 0 && (l & 4) == 0){ do something}
(l & 8)
和(l & 4)
做了什么?
什么&在这种情况下呢?
答案 0 :(得分:12)
&安培;和&&是两个不同的运营商,但差异不是你所描述的。
&安培;如果两个源整数中的两个对应位都设置为1,则两个整数按位并且产生第三个整数,其位设置为1;否则为0。
&安培;&安培;仅适用于两个布尔值并返回第三个布尔值,如果两个输入布尔都为真,则该布尔值为真;否则就是假的。