项目需要,写一个服务端测试程序,用C语言,想将4字节整数还原出来,错误代码如下:
void ParseData(char * data)
{
unsigned int chip_ID = 0;
unsigned int year = 0,
mon = 0,
date = 0,
hour = 0,
min = 0,
sec = 0;
unsigned short netAddr = 0;
char info[256] = {0};
char path[50] = {0};
chip_ID = (unsigned int)(*(data) & 0x000000FF);
chip_ID += (unsigned int)(*(data + 1) << 8);
chip_ID += (unsigned int)(*(data + 2) << 16);
chip_ID += (unsigned int)(*(data + 3) << 24);
......
}
反复折腾良久之后才发现,将函数参数 改为“unsigned char * data“后正常。恍然之间好像明白了点啥.....总之,以后只对无符号整数做移位运算~!!