누구나 ANSI C에 적합한 비트 조작 라이브러리를 알고 있습니까?ANSI 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라는 유사한 라이브러리가있다처럼, 변수에 뭔가를 특정 비트를 설정하지만, 직접 메모리 조작을 지원하지 않는 것 Jovial처럼 나는 기본적으로 필요한 것은 는 능력이다. 파일 스트림에 비트를 공급하는 것만 지원합니다.
쓰기가 어렵지는 않지만 테스트 된 것이 있다면 - 나는 바퀴를 다시 만들지 않을 것입니다.
어쩌면이 라이브러리는 더 큰 라이브러리 (bzip2
, gzip
은 일반적인 용의자입니까?)의 일부로 존재합니까?
http://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit-in-c 꼭 필요한 경우 기능을 정리하십시오. – dmckee
@dmckee 여기에있는 답변에는'copyBits' 기능이 포함되어 있지 않습니다. 함수를 래핑하는 것은 일반적으로 말하는 "필수"는 아니지만 잘 구조화 된 코드의 필수 요소입니다. –