0
我的服务器接收6个字节的数据:2个字节的头和1个变量由Big Endian顺序中的最后4个字节组成(在下例中,变量为100000小数)将32位变量以Big Endian顺序转换为Little Endian
00000001 head
00000001
10100000 start 4 bytes of variable (100000 decimal)
10000110
00000001
00000000
我想用下面这个代码(buf将包含上述数据)读取这个变量
unsigned char buf[MAX_s];
int32_t var = (buf[2] << 24) | (buf[3] << 16) | (buf[4] << 8) | buf[5];
printf(" %u \n",var);
但预期的结果是不100000,但一些其他更大的数字。 我做错了什么?
是的,这是这个数字! – maciekm
它现在有效,thx。 – maciekm