繁体   English   中英

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

[英]how to retrieve 1 bit from byte array(unsigned char array) in C

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

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

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

为此,您如何(以及为什么)将字节存储在字节数组中? 这不是必需的。

无论如何,如果要检索字节的第一位,则只需要做一位操作。

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

操作byte & 1按位AND操作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM