移位操作:因为操作符的原因,注意加括号。还有没必要在移位的时候进行(uint32_t)转换。
测试程序如下:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
 
int main()
{
	uint8_t buffer[4] = {0x11, 0x22, 0x33, 0x44};
    uint32_t value = buffer[0] + (buffer[1] << 8) + (buffer[2] << 16) + (buffer[3] << 24);
	printf("value = %x\n", value);
	return 0;
}
 
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
 
int main()
{
	uint8_t buffer[4] = {0x11, 0x22, 0x33, 0x44};
    uint32_t value = buffer[0] + buffer[1] << 8 + buffer[2] << 16 + buffer[3] << 24;
	printf("value = %x\n", value);
	return 0;
}
 


















