有誰知道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