1918|8

92

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

新手菜鸟问个c语言if语句的问题 [复制链接]

新手刚刚接触单片机,入了个oled,看文档的时候,发现这么一段,if(IIC_Byte&0x80)  这里为什么可以这样写呢?  IIC_Byte&0x80==0x80 的话我能明白,不过安例子这样 两个字节按位与可以直接当if的判断式吗?

IMG_20191114_205323.jpg (494.98 KB, 下载次数: 0)

IMG_20191114_205323.jpg
此帖出自单片机论坛

最新回复

C語言中,針對邏輯的判斷,若為數值則"唯零為假、非零即真";這是我個人的理解,提供參考~  详情 回复 发表于 2019-11-16 06:53
点赞 关注
 

回复
举报

862

帖子

2

TA的资源

纯净的硅(初级)

沙发
 
c语言运算结果是非零值就是真的。所以这么写,就是说一个字节里边最高位是否为1,为1最后条件判断为真,为零就是假,不成立。主要是使用了&操作符的特性。
此帖出自单片机论坛

点评

感谢大佬  详情 回复 发表于 2019-11-15 13:57
 
 

回复

862

帖子

2

TA的资源

纯净的硅(初级)

板凳
 
来判断前边的变量字节最高位是否为一
此帖出自单片机论坛
 
 
 

回复

6040

帖子

204

TA的资源

版主

4
 

IIC_Byte&0x80==0x80, 你这么写注意运算符优先级顺序,这样写是错误的,应该是(IIC_Byte&0x80)==0x80

此帖出自单片机论坛

点评

感谢大佬,明白了  详情 回复 发表于 2019-11-15 13:55
 
 
 

回复

295

帖子

1

TA的资源

版主

5
 

4楼大佬正解,if 判断的是 非0 与 0,即真与假,IIC_Byte&0x80的结果非0 ,则 if 条件就成立了,

此帖出自单片机论坛

点评

谢谢大佬回复  详情 回复 发表于 2019-11-15 13:57
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(中级)

6
 
lcofjp 发表于 2019-11-14 21:58
IIC_Byte&0x80==0x80, 你这么写注意运算符优先级顺序,这样写是错误的,应该是(IIC_Byte&0x80)==0x80
...

感谢大佬,明白了
此帖出自单片机论坛
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(中级)

7
 
wo4fisher 发表于 2019-11-14 21:04
c语言运算结果是非零值就是真的。所以这么写,就是说一个字节里边最高位是否为1,为1最后条件判断为真,为 ...

感谢大佬
此帖出自单片机论坛
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(中级)

8
 
hotsauce1861 发表于 2019-11-15 08:09
4楼大佬正解,if 判断的是 非0 与 0,即真与假,IIC_Byte&0x80的结果非0 ,则 if 条件就成立了,

谢谢大佬回复
此帖出自单片机论坛
 
 
 

回复

37

帖子

3

TA的资源

一粒金砂(中级)

9
 
C語言中,針對邏輯的判斷,若為數值則"唯零為假、非零即真";這是我個人的理解,提供參考~
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表