微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c++ - 如何在c ++中将两个无符号字符合并为一个无符号short16位

如何解决c++ - 如何在c ++中将两个无符号字符合并为一个无符号short16位

如何在 C++ 中将两个无符号字符合并为一个无符号短整型。 数组中的最高有效字节包含在 array[0] 中,最低有效字节位于 array[1] 中。 (大端)

解决方法

(array[0] << 8) | array[1]

请注意,当您将 unsigned char 用于任何计算时,它会隐式转换(“提升”)为 int。因此 array[0] << 8 不会溢出。此外,此计算的结果是 int,因此如果您的编译器发出警告,您可以将其转换回 unsigned short。

,

将short设置为最低有效字节,将最高有效字节移8位并执行二进制或运算保留下半部分

unsigned short s;
s = array[1];
s |= (unsigned short) array[0] << 8;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。