如果现在打印结果是4398,说明这个变量存储的是一个十六进制数,需要将其转换成二进制再进行处理。可以使用 std::stringstreamstd::hex 进行转换,代码如下:

std::stringstream ss;
ss << std::hex << 4398;
uint16_t mapid;
ss >> mapid;

然后就可以使用下面的方法将两个字节的十六进制数合并成一个 uint16_t 类型的变量了:

uint8_t highByte = (mapid >> 8) & 0xFF;
uint8_t lowByte = mapid & 0xFF;
uint16_t combined = (highByte << 8) | lowByte;

这样就可以将 0x11 和 0x2e 合并成 1687228718。

将十六进制数转换为 uint16_t 类型并合并字节

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

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