我有一个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]
。
答案 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的