如何将4 int8整数交换为C中的int32变量

时间:2014-05-05 06:30:22

标签: c swap

我有一个8字节的整数缓冲区,带有数据字节,还有一个32字节的变量来保存这些数据。除了使用指针外,如何将数据字节交换到变量? (使用指针会出现一些未知问题)。

实施例

buffer[0] = 0;
buffer[1] = 1;
buffer[2] = 2;
buffer[3] = 3;

如何将buffer[0]转换为可变位[31:24]buffer[1]转换为可变位[23:16]buffer[2]转换为变量位[15:8],{{ 1}}到变量位buffer[3]

1 个答案:

答案 0 :(得分:3)

uint32_t variable;
buffer[0] = 0;
buffer[1] = 1;
buffer[2] = 2;
buffer[3] = 3;
variable = ((buffer[0] << 24)| (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]);

当我使用32位变量时,我使用的数据类型声明是uint32_t,请确保您使用它,否则请使用uint8_t&amp;的声明。 uint32_t的