代码改变世界

MAKEWORD制造双字

2012-10-05 17:53  kennyMc  阅读(443)  评论(0编辑  收藏  举报

方法的宏定义

#define MAKEWORD(a, b)     
 ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))

 

unsigned long w=12345678911111;
cout<<(w&0xff)<<endl;

oxff=255=11111111,

12345678911111=10110011101001110011110011100101011010000111

所以输出结果是135(二进制:10000111),其他位被&运算成0。

MAKEWORD将2个字节变成一个字,a是低字节,b是高字节。

 

本文版权归kennyMc和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。