标题:
C语言函数if语句问题
[打印本页]
作者:
d8480
时间:
2020-3-27 19:44
标题:
C语言函数if语句问题
2个函数为什么输出的结果不一样
无标题.png
(7.67 KB, 下载次数: 31)
下载附件
2020-3-27 19:43 上传
无标题1.png
(6.94 KB, 下载次数: 23)
下载附件
2020-3-27 19:44 上传
作者:
csmyldl
时间:
2020-3-27 21:58
判断式逻辑错误,因为if (dat&0x80==0x80)中括号内的运算结果是0x00为假
而if (dat&0x80)括号内的运算结果是0x80,为真
这是因为==的优先级比&高,正确的逻辑是if ((dat&0x80)==0x80)
作者:
余生不负
时间:
2020-3-28 00:14
if (dat&0x80) &0x80判断是否为真,if ((dat&0x80)==0x80) 先&0x80的结果再判断等于 0x80不
作者:
5227
时间:
2020-3-28 10:05
条件判断是二值判断
作者:
cjjdemon
时间:
2020-3-28 11:28
if (dat&0x80),这条语句永远为真,因为不论dat是什么值,&0x80后都不可能为0,所以else永远不会被执行
if ((dat&0x80)==0x80) ,是判断dat&0x80后,是否与0x80相等作为if判断执行条件,当dat=0或0x80,判断为真,执行P1=1; 其它值均执行else,P1=0
作者:
还有谁?
时间:
2020-3-28 13:24
跟if语句没关系,只同位运算有关,再补补课应该能整明白
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1