我们在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]);
本文讨论了在编程中使用unsignedchar而非char作为buffer的优点,解释了位移运算在不同数据类型上的行为差异,并提供了实例代码演示如何正确地进行位移操作以避免潜在的错误。
1851

被折叠的 条评论
为什么被折叠?



