CRC32 C++ Source Code

C, C++, Visual C++, C++.Net Topics
Post Reply
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

CRC32 C++ Source Code

Post by Neo » Wed Dec 16, 2009 7:19 am

Global Variables:

Code: Select all

unsigned int crc32Table[256];
One time call function:

Code: Select all

void init_CRC32 (){

	int i, j;
	unsigned int dwPolynomial;
	unsigned int dwCrc;

	dwPolynomial = 0xEDB88320; // VIDEO4

	// Lookup table
	for (i = 0; i<256; i++){
		dwCrc = i;
		for (j = 8; j>0; j--){
			if (dwCrc & 1){
				dwCrc >>= 1;
				dwCrc ^= dwPolynomial;
			}
			else {
				dwCrc >>= 1;
			}
		}
		crc32Table[i] = dwCrc;
	}
}
CRC32 calculation:

Code: Select all

unsigned int getCRC32(unsigned char *buf, unsigned int length){

	unsigned int crc32Result = 0xFFFFFFFF;
	unsigned char iLookup;
	int i;

	for (i=0; i<length; i++){
		iLookup = (crc32Result & 0xFF) ^ buf[i];
		crc32Result >>= 8;
		crc32Result ^= crc32Table[iLookup];
	}

	return ~(crc32Result);
}
Post Reply

Return to “C/C++ Programming”