我们在new一个buffer的时候要尽量使用unsigned char而不是简单的char,因为由于位移运算符号的特殊性质,会根据首个bit的0或者1自动添加,如果是char就会产生很多错误,所以作为buffer我们要使用unsigned char。
int lc;
unsigned char buffer[4];
buffer[0] =(char)(lc>> 24);
buffer[1] =(char)(lc>> 16);
buffer[2] =(char)(lc>> 8);
buffer[3] =(char)(lc);
int val = (current_[0] << 24 | current_[1] << 16 | current_[2] << 8 | current_[3]);