所以我使用它(它来自我做的另一个问题),
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所以很抱歉,如果我正在做的事情非常糟糕。
答案 0 :(得分:0)
基本上在编程中你处理字节(我认为,至少在大多数情况下),在C中你处理特定大小的类型(取决于你在上运行它的系统)。
那就是说char
通常的大小为1个字节,我真的不认为你可以玩单个位。我的意思是你可以对它们进行操作(例如<<
),但是我不知道在C中保存少于8位的标准方法(尽管我可能错了) )