组中的单独字节

时间:2014-11-06 12:51:18

标签: c byte bit

所以我使用它(它来自我做的另一个问题),

unsigned char *y = resultado->informacion; 
int i = 0;
int tam = data->tamanho;
unsigned char resAfter; 
for (int i=0; i<tam;i++)
{
    unsigned char x = data->informacion[i];
    x <<= 3;
    if (i>0)
    {
        resAfter = (resAfter << 5) | x;
    }
    else
    {
        resAfter = x;
    }
}

printf("resAfter es  %s\n", resAfter);

所以最后我有这个非常长的数字(我估计大约43位),我怎么能得到8位的组,我想我得到的东西像(010101010101010 ...... 000)我想要分开这是8人一组。

另一个问题,我确定resAfter将有n个位,其中n是8加3的乘法,所以我的问题是:这可能吗?或者c将完成字节?就像我得到43位然后c将用0填充它们并完成所以我有48位;有没有办法删除这3位?

我是新的c和bitwise所以很抱歉,如果我正在做的事情非常糟糕。

1 个答案:

答案 0 :(得分:0)

基本上在编程中你处理字节(我认为,至少在大多数情况下),在C中你处理特定大小的类型(取决于你在上运行它的系统)。
那就是说char 通常的大小为1个字节,我真的不认为你可以玩单个位。我的意思是你可以对它们进行操作(例如<<),但是我不知道在C中保存少于8位的标准方法(尽管我可能错了) )