有谁知道ANSI C的好位操作库?我基本上需要的是能力,就像在Jovial中设置变量中的特定位一样
// I assume LSB has index of 0
int a = 0x123;
setBits(&a,2,5, 0xFF);
printf("0x%x"); // should be 0x13F
int a = 0x123;
printf("0x%x",getBits(&a,2,5)); // should be 0x4
char a[] = {0xCC, 0xBB};
char b[] = {0x11, 0x12};
copyBits(a,/*to=*/4,b,/*from=*/,4,/*lengthToCopy=*/8);
// Now a == {0x1C, 0xB2}
Run Code Online (Sandbox Code Playgroud)
有一个名为bitfile的类似库,但它似乎不支持直接内存操作.它仅支持向文件流提供位.
这不难写,但如果有测试的东西 - 我不会重新发明轮子.
也许这个库中存在的大库的一部分(bzip2,gzip是通常的嫌疑人)?