语句if(a&b)如何判断真假

当a不等于b的时候也可能为真啊,比如0101&0001,这个结果肯定不是0啊,那究竟如何判断呢???

注意按位与&与逻辑与&&的区别。
1、对于&,是将左右操作数以二进制的表示方式,对应位进行“与”操作,都为1时,结果为1,否则为零。
15 & 8可表示为
1111
1000
-------
1000
结果是8
2、对于&&,是将左右两个操作数看作是逻辑变量,0为“假”,非零为真。两个数都为“真”(非零)时,结果为真,否则结果是假。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
很好判断:
a&b
首先把a和b都转换成,然后按位相与。结果是0为假,结果非0为真。
比如你说的
0101
0001
&
0001
结果为1,if为真追问

if (filp->f_flags & O_NONBLOCK) /*不能以非阻塞读取*/
return -EAGAIN;
上面是实例中的程序,那个判断是不是应该判断两个值是否相等呢

追答

O_NONBLOCK 是宏定义的吧,如果它们非0并且相等的话&运算肯定是真的。

本回答被提问者和网友采纳
第2个回答  2013-07-12
a&b的值为0的话就为假,否则为真
第3个回答  2013-07-12
零值为假 ,非零值为真

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网