Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-从字节中获取一个位_C_Byte_Bit Manipulation_Bit - Fatal编程技术网

C-从字节中获取一个位

C-从字节中获取一个位,c,byte,bit-manipulation,bit,C,Byte,Bit Manipulation,Bit,可能重复: 我有一个8位字节,我想从这个字节中得到一位,比如 getByte(0b01001100,3)=1首先,C0b01…没有二进制常量,请尝试使用十六进制常量。第二: uint8_t byte; printf("%d\n", byte & (1 << 2); uint8字节; printf(“%d\n”,byte&(1)使用&运算符屏蔽到所需位,然后使用>>随意移位。首先,0b前缀不是C,而是C的GCC扩展。 要获取uint8\u t a的位3的值,可以使用以下表达

可能重复:

我有一个8位字节,我想从这个字节中得到一位,比如
getByte(0b01001100,3)=1首先,C
0b01…
没有二进制常量,请尝试使用十六进制常量。第二:

uint8_t byte;
printf("%d\n", byte & (1 << 2);
uint8字节;

printf(“%d\n”,byte&(1)使用&运算符屏蔽到所需位,然后使用>>随意移位。

首先,
0b
前缀不是C,而是C的GCC扩展。 要获取
uint8\u t a
的位3的值,可以使用以下表达式:

((a >> 3)  & 0x01)

如果设置了位3,则计算结果为1,如果未设置位3,则计算结果为0。

Arrgh,重复太多了!让我找到第三位,但有一个错误。为了帮助那些可能不太熟悉二进制的人,位3实际上是右边的第四位,也就是说,11110如果你想从右边得到第三位,你可以将第二位右移e第五、第四等。