gpt4 book ai didi

c++ - 加入 16 位有符号整数的 MSB 和 LSB(二进制补码)

转载 作者:太空宇宙 更新时间:2023-11-04 12:24:36 25 4
gpt4 key购买 nike

我正在使用一种专有协议(protocol),该协议(protocol)分两部分将整数作为 16 位二进制补码进行传输。首先传输 LSB,然后传输 MSB。以下恢复原值的代码是否正确?

unsigned char message[BLK_SIZE];
// read LSB to message[0] and MSB to message[1]
short my_int = (message[1] << 8) | message[0];

最佳答案

我认为如果 short 不是 16 位,代码将失败,因此您的代码在某些平台上可能会失败。不过,您可能永远找不到它失败的平台。

int16_t,如果在您的目标平台上可用,可能是更好的选择。

关于c++ - 加入 16 位有符号整数的 MSB 和 LSB(二进制补码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com