如何从C中的字节数组(unsigned char数组)中检索1位

时间:2010-09-13 04:39:51

标签: c

我必须从1个字节检索第一位。     为此,我将整个1字节存储在unsigned char数组中。现在我按照以下代码检索第一位:

unsigned char byteArray[100];
.....
.....//some code to store 1 byte in byte array
//now 1st bit will be:
int bit=(int) byteArray[0];

我只想确认检索第1位所涉及的步骤是否正确?有没有更好的方法从C中的unsigned char数组(字节数组)中检索单个位。

2 个答案:

答案 0 :(得分:2)

为此目的,如何(以及为什么)将字节存储在字节数组中?没必要。

在任何情况下,如果要检索一个字节的第一位,您只需要进行一位操作。

unsigned char byte = <some random value>;  // your byte containing the value.
unsigned int first_bit = byte & 1;  // for Least significant bit

操作byte & 1bitwise AND operation

答案 1 :(得分:1)

不,数组索引器将返回无符号字符大小的数据,而不是单个位。使用byteArray[0] & 1; - 屏蔽该值,以便只获得第一位(取决于哪一端是“第一位”)。另一端是& 128

相关问题