C语言输入一组字节数组数组按每3比特分组对字节数组进行遍历
以下是一个示例代码:
#include <stdio.h>
int main() {
unsigned char bytes[] = {0x12, 0x34, 0x56, 0x78, 0x9a};
int num_bytes = sizeof(bytes) / sizeof(unsigned char);
int i, j;
for (i = 0; i < num_bytes; i++) {
for (j = 0; j < 8; j += 3) {
unsigned char bits = (bytes[i] >> j) & 0x07;
printf("%d ", bits);
}
}
printf("\n");
return 0;
}
该代码假设输入的字节数组为 bytes,并且按照每3比特分组。它使用一个双重循环,第一个循环遍历每个字节,第二个循环遍历每个字节中的每个3比特组。在第二个循环中,代码使用位移操作和按位与运算获取每个3比特组,并将其打印到控制台上。注意,掩码 0x07 用于获取3比特组,因为它的二进制表示为 00000111,它的位值仅限于3比特
原文地址: http://www.cveoy.top/t/topic/cTjc 著作权归作者所有。请勿转载和采集!