我必须从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数组(字节数组)中检索单个位。
答案 0 :(得分:2)
为此目的,如何(以及为什么)将字节存储在字节数组中?没必要。
在任何情况下,如果要检索一个字节的第一位,您只需要进行一位操作。
unsigned char byte = <some random value>; // your byte containing the value.
unsigned int first_bit = byte & 1; // for Least significant bit
操作byte & 1
是bitwise AND operation。
答案 1 :(得分:1)
不,数组索引器将返回无符号字符大小的数据,而不是单个位。使用byteArray[0] & 1;
- 屏蔽该值,以便只获得第一位(取决于哪一端是“第一位”)。另一端是& 128
。