|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ #define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 问题。。。
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1646
人关注过本帖
标题:
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 问题。。。 ...
只看楼主
加入收藏
liaoque
等 级:
新手上路
帖 子:2
专家分:0
注 册:2010-5-23
楼主
收藏
问题点数:0 回复次数:4
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 问题。。。
#define HIBYTE(w)
((BYTE) (((WORD) (w) >> 8) & 0xFF))
(WORD) (w) 这样一个转换已经把w转换成16位数
然后在右移8位已经得到高8位了
为啥还要 &0xFF
最后还有BYTE强制转换呢?
不是很多余吗?
2012-11-17 18:38
举报帖子
使用道具
赠送鲜花
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
2
楼
收藏
得分:0
&0xFF确实有点多余,不过强转BYTE还是必要的,毕竟这个宏的值应该是截断之后的一个字节。
My life is brilliant
2012-11-17 19:45
举报帖子
使用道具
赠送鲜花
elic_2000
等 级:
论坛游民
帖 子:12
专家分:15
注 册:2012-11-4
第
3
楼
收藏
得分:0
这个不多余的,如果你见过:
unsigned char a = 0x1234;
printf( "%x", a );
其结果真的是1234的话,你就会明白为什么不多余了。
2012-11-17 22:49
举报帖子
使用道具
赠送鲜花
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
4
楼
收藏
得分:0
回复 3楼 elic_2000
兄弟你用的是神马编译器?我gcc编译有个警告,而且运行结果是34,也就是它的低字节。
My life is brilliant
2012-11-17 23:44
举报帖子
使用道具
赠送鲜花
liaoque
等 级:
新手上路
帖 子:2
专家分:0
注 册:2010-5-23
第
5
楼
收藏
得分:0
回复 2楼 lz1091914999
谢谢我懂了
至于3L说的我真心不懂。。。
2012-11-26 00:57
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 问题。。。 ...
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024831 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved