我需要从一个字节读取一个特定的位.我想测试的值是0或1.
unsigned char Buffer[0]=2;
//or binary 0b00000010
Run Code Online (Sandbox Code Playgroud)
我如何从缓冲区中读取n位.如果它是0或1?例如,如果字节中的7位是0或1
您必须精确定义如何计算位数:
0或开始1假设位0是最不重要的,你可以得到7这个表达式:
int bit7 = ((unsigned char)Buffer[0] >> 7) & 1;
Run Code Online (Sandbox Code Playgroud)
这是一个通用循环:
for (int i = 7; i >= 0; i--) {
putchar('0' + (((unsigned char)Buffer[0] >> i) & 1));
}
Run Code Online (Sandbox Code Playgroud)