Closed. This question needs details or clarity. It is not currently accepting answers. Learn more
想改进这个问题吗?添加细节并通过editing this post澄清问题。
5年前关闭。
我怎么能一点一点地储存呢?
我需要从不同的变量中提取不同数量的位,并将它们放入缓冲区,如图所示。
unsigned char a;
a=5;

现在我要取LSB并将其存储在unsigned char类型的缓冲区中。
unsigned char buffer[5];

用于提取我正在使用的
a & 00000001

现在如何存储它以及之后的更多位呢?

最佳答案

我不知道你想做什么,但这里有一个按位移位的例子。

unsigned char b;
unsigned char c;

b = a & (1 << 0); /* Will store the least significant bit of a in b*/
c = a & (1 << 1); /* Will store the 2nd least significant bit of a in c*/

您可以使用它来创建只有有限位的变量。
typedef struct bit_s
{
    unsigned int    a : 1; /* only 1 bit available */
    unsigned int    b : 12; /* only 12 bits available */
}              bit_t;

bit_t var;

var.a = 0;
var.a = 1;
var.a = 2; /* Will overflow the variable and create a warning with -Woverflow */

关于c - 在C linux中的一点点字符数组中存储一点点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23537053/

10-11 21:06