如何在 C++ 中将两个无符号字符合并为一个无符号短字符。数组中的最高有效字节包含在 array[0] 中,最低有效字节位于 array[1] 中。(大端)
问问题
87 次
2 回答
3
(array[0] << 8) | array[1]
请注意,当您将 an 用于任何计算时,它unsigned char
会被隐式转换(“提升”) 。int
因此array[0] << 8
不会溢出。此计算的结果也是一个int
,因此如果您的编译器发出警告,您可以将其转换回 unsigned short 。
于 2021-02-16T13:38:23.537 回答
0
将short设置为最低有效字节,将最高有效字节移位8并执行二进制或操作以保持下半部分
unsigned short s;
s = array[1];
s |= (unsigned short) array[0] << 8;
于 2021-02-16T13:42:32.927 回答