将3个无符号字符组合成unsigned int

时间:2015-09-15 19:52:19

标签: c

我要求在C中使用无符号3字节类型。我正在寻找一种将它们打包成单个unsigned int的方法。

这是安全还是需要存储在24位大小的数组/结构中?

unsigned int pack_3Byte(unsigned char b1, unsigned char b2, unsigned char b3)
{
    return (b1 << 16) | (b2 << 8) | (b3);
}

1 个答案:

答案 0 :(得分:1)

你的代码是正确的,但是像奥拉夫说的那样你应该使用类型uint8_t和uint32_t来确保你的类型实际上是你期望的宽度。

现在这可能不是问题,但您还应该知道整数中的字节以不同的顺序存储在不同的处理器上。这称为endianness