#include <stdio.h>
unsigned int Revbit(unsigned int data)
{
unsigned int uRevData = 0,i = 0;
uRevData |= ((data >> i) & 0x01);
for(i = 1; i < 32; i++)
{
uRevData <<= 1;
uRevData |= ((data >> i) & 0x01);
}
return uRevData;
}
unsigned int Revswap (unsigned int data)
{
unsigned char *p = (unsigned char *)&data;
unsigned char *q = p + 3;
while(p < q)
{
*p = *p^*q;
*q = *p^*q;
*p = *p^*q;
p++;
q--;
}
return data;
}
unsigned int CRC32_Cal(unsigned int data)
{
unsigned int DR = Revbit(Revswap(data));
return (Revbit(DR));
}
int main () {
printf("Hello world! %X",CRC32_Cal(1788446349));
return 0;
}