有谁知道ANSI C的位操作库吗? 我基本上需要,是能力,像Jovial在一个变量设置特定位,像ANSI C位操作库C
// 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}
有一个叫bitfile类似的库,但它似乎不支持直接内存操作。它仅支持将位馈送到文件流。
这不难写,但如果有些事情经过测试 - 我不会重新发明轮子。
也许这个图书馆作为一个较大的图书馆存在(bzip2
,gzip
是通常的嫌疑犯)?
http://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit-in-c如果必须的话,将函数中的答案放在函数中。 – dmckee 2009-08-24 14:16:04
@dmckee那里的答案不包括'copyBits'功能。在函数中包装事物通常不是一个“必须”,但它是结构良好的代码必须的。 – 2012-01-08 10:04:38