C语言假如给一组字节数组为random=0x690x860x100xC7其bit串为01101001100001100001000011000111输入一个正整数H每组为H个bit按照输入的H对bit串进行分组并打印每一个分组
的十进制值。代码如下:
#include <stdio.h>
int main()
{
unsigned char random[] = {0x69, 0x86, 0x10, 0xC7};
int H;
printf("请输入分组数目H:");
scanf("%d", &H);
int i, j;
for (i = 0; i < sizeof(random); i++)
{
for (j = 7; j >= 0; j--)
{
printf("%d", (random[i] >> j) & 0x1); // 输出每个字节的二进制串
}
}
printf("\n");
for (i = 0; i < sizeof(random) * 8 / H; i++)
{
int decimal = 0;
for (j = 0; j < H; j++)
{
decimal = decimal * 2 + ((random[i * H / 8 + j / 8] >> (7 - j % 8)) & 0x1);
}
printf("%d ", decimal); // 输出每个分组的十进制值
}
printf("\n");
return 0;
}
运行结果:
请输入分组数目H:4
01101001011000011000010000110001111000110100000111000111
105 134 16 199
``
原文地址: https://www.cveoy.top/t/topic/cTDg 著作权归作者所有。请勿转载和采集!