找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言函数if语句问题

查看数: 1961 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-27 19:44

正文摘要:

2个函数为什么输出的结果不一样

回复

ID:475247 发表于 2020-3-28 13:24
跟if语句没关系,只同位运算有关,再补补课应该能整明白
ID:612392 发表于 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
ID:715816 发表于 2020-3-28 10:05
条件判断是二值判断
ID:316880 发表于 2020-3-28 00:14
if (dat&0x80)  &0x80判断是否为真,if ((dat&0x80)==0x80)    先&0x80的结果再判断等于 0x80不
ID:235200 发表于 2020-3-27 21:58
判断式逻辑错误,因为if (dat&0x80==0x80)中括号内的运算结果是0x00为假
而if (dat&0x80)括号内的运算结果是0x80,为真
这是因为==的优先级比&高,正确的逻辑是if ((dat&0x80)==0x80)

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表