부스트에는 참 많은 기능이 있죠. CRC 계산하는 루틴도 포함되어 있습니다. 그것도 사용하기가 너무 너무 쉬워요. 그럼 일반적으로 많이 사용하는 32비트 CRC를 계산 루틴을 한 번 살펴볼까요 ㅋ~
#include <stdio.h>
#include "boost/crc.hpp" (1)
int main()
{
boost::crc_32_type crc; (2)
char bytes[] = "hello world!";
crc.process_bytes(bytes, strlen(bytes)); (3)
printf("%08x\n", crc.checksum()); (4)
return 0;
}
- crc.hpp 일단 인클루드 해 주시구요.
- crc_32_type이 우리가 계산할 32비트 CRC를 계산하는 클래스 타입입니다.
- process_bytes로 CRC 계산할 버퍼를 계속 공급해 주시면 됩니다. 버퍼 포인터와 크기라는 건 뭐 그냥 아시겠지요?
참고로 한번에 넘기기 큰 데이터는 분할해서 process_bytes를 호출하면 됩니다. - checksum 메소드를 사용하면 계산된 32비트 CRC 값이 넘어 옵니다.