delphi 中 LOWORD, HIWORD, LOBYTE, HIBYTE 到底是干嘛用的。

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; 
}