语句为什么执行不对

[复制链接]
 楼主| loveme99 发表于 2011-2-10 22:19 | 显示全部楼层 |阅读模式
if ( ( (Dato & 0xff) == IDLo) && ( (Dato>>8) == IDMi))
其中Dato=e03e;IDLo=3e;IDMi=e0;
为什么用PICC HI-TECH 9.60编译执行结果不对
 楼主| loveme99 发表于 2011-2-10 23:41 | 显示全部楼层
if ( ( (Dato & 0xff) == IDLo) && (((Dato>>8)& 0xff) == IDMi))正确
yewuyi 发表于 2011-2-11 08:38 | 显示全部楼层
你的目的是为了判断Dato是否等于IDLo+IDMi<<8吧!?

那你可以这样写:
if (Dato==((uint)IDLo+(uint)IDMi<<8)){}
 楼主| loveme99 发表于 2011-2-11 08:46 | 显示全部楼层
谢谢哦,懂了,类型没弄对。
谈的元 发表于 2011-2-12 22:58 | 显示全部楼层
Dato是16位   IDMi是8位?2个比较不对?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

119

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

19

主题

119

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部