C – 从一个字节中获取一点
可能重复:
如何从c中的整数值中逐位获取数据?
我有一个8位字节,我想从这个字节得到一点,比如getByte(0b01001100,3)= 1
Firstoff, 0b
前缀不是C而是C的GCC扩展。要获得uint8_t a
的第3位的值,可以使用以下表达式:
((a >> 3) & 0x01)
如果设置了第3位,则将其评估为1;如果未设置第3位,则评估为0。
首先,C 0b01...
没有二进制常量,尝试使用hex常量。 第二:
uint8_t byte; printf("%d\n", byte & (1 << 2);
使用&运算符屏蔽到您想要的位,然后根据需要使用>>移动它。