LOWORD()得到一个32bit数的低16bit
HIWORD()得到一个32bit数的高16bit
LOBYTE()得到一个16bit数最低(最右边)那个字节
HIBYTE()得到一个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 std::cout << std::hex << "i的高位: " << ih << std::endl; // result: 440b std::cout << std::hex << "i的低位: " << il << std::endl; WORD bh = HIBYTE(i); // 取高8位 WORD bl = LOBYTE(i); // 取低8位 // result: 44(是44, 不是0, 以前一直理解错误) std::cout << std::hex << "i的高位: " << bh << std::endl; // result: b std::cout << std::hex << "i的低位: " << bl << std::endl; return EXIT_SUCCESS; }