在C++中,lParam是一个32位的整数类型,可以使用位运算来获取高低两位。\n\n要获取低16位,可以使用位与操作符(&)和0xFFFF掩码。如下所示:\n\ncpp\nint lowWord = lParam & 0xFFFF;\n\n\n要获取高16位,可以先将lParam右移16位,然后再使用位与操作符和0xFFFF掩码。如下所示:\n\ncpp\nint highWord = (lParam >> 16) & 0xFFFF;\n\n\n请注意,位移操作符(>>)用于将lParam右移16位。通过这种方式,高16位被移动到了低16位的位置,然后再通过位与操作符获取高16位的值。\n\n请注意,如果lParam是一个有符号整数类型,而且高位是负数,那么在右移操作时可能会出现符号扩展的情况。为了避免这种情况,可以使用无符号整数类型来保存拆分后的高低位值。\n\n以下是一个完整的示例:\n\ncpp\n#include <iostream>\n\nint main() {\n LPARAM lParam = 0x12345678;\n\n int lowWord = lParam & 0xFFFF;\n int highWord = (lParam >> 16) & 0xFFFF;\n\n std::cout << "Low Word: " << lowWord << std::endl;\n std::cout << "High Word: " << highWord << std::endl;\n\n return 0;\n}\n\n\n输出结果:\n\n\nLow Word: 22136\nHigh Word: 4660\n

C++ lParam 高低两位提取详解

原文地址: https://www.cveoy.top/t/topic/qjEX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录