什么是从无符号字符中提取一点的最好方法。在我看来,我认为这非常有效。
int bit;
unsigned char buffer;
bit= 1 & (buffer>>3) //`if i want to extract the fourth bit
bit= 1 & (buffer>>7)//if i want to extract the 8 bit
答案 0 :(得分:1)
如果您不关心位在最不重要的位置(例如,因为您需要布尔条件),您可以这样做:
if (buffer & (1<<3)) {
// ...
}
由于constant folding,这可能会更快:它在运行时只有一个操作而不是两个。