|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
LOWORD()得到一个32bit数的低16bit
HIWORD()得到一个32bit数的高16bit
LOBYTE()得到一个16bit数最低(最右边)那个字节
HIBYTE()得到一个16bit数最高(最左边)那个字节
LOWORD, HIWORD这个以前就很常用到, 比如消息参数 lParam 中存放着鼠标位置. lParam 是 4 字节的, 它的低两位存放 x、高两位存放 y.
需要注意的是:当LOBYTE, HIBYTE应用于32bit数时, 实际上这时应该用于32bit数的后16bit!
- #include <iostream>
- #include <Windows.h>
-
- int main()
- {
- // i = 10241035(0x009c440b)
- int i = 10241035;
- WORD ih = HIWORD(i); // 取高16位
- WORD il = LOWORD(i); // 取低16位
-
- // result: 9c
- printf("i的高位: %x\n",ih);
- // result: 440b
- printf("i的低位: %x\n",il);
-
- WORD bh = HIBYTE(i); // 取高8位
- WORD bl = LOBYTE(i); // 取低8位
- // result: 44(是44, 不是0, )
- printf("i的高位: %x\n",bh);
- // result: b
- printf("i的低位: %x\n",bl);
-
- return 1;
- }
复制代码 |
|