有个crc 的程序,但是不知道使用的是何种标准的算法。求助中。有什么程序可以还原来数据? 时时在线等〉。。。
int32 generate_32bit_crc(char* data, int16 length, int32 pattern)
{
int *current_data;
int32 crc_Dbyte;
int16 byte_counter;
int bit_counter;
current_data = data + 4;
crc_Dbyte = make32(data[0], data[1], data[2], data[3]);
for(byte_counter=0; byte_counter < (length-4); byte_counter++)
{
for(bit_counter=0; bit_counter < 8; bit_counter++)
{
if(!bit_test(crc_Dbyte,31))
{
crc_Dbyte <<= 1;
bit_test(*current_data, 7 - bit_counter) ?
bit_set(crc_Dbyte,0) : bit_clear(crc_Dbyte,0);
continue;
}
crc_Dbyte <<= 1;
bit_test(*current_data, 7 - bit_counter) ?
bit_set(crc_Dbyte,0) : bit_clear(crc_Dbyte,0);
crc_Dbyte ^= pattern;
}
current_data++;
}
for(bit_counter=0; bit_counter < 32; bit_counter++)
{
if(!bit_test(crc_Dbyte,31))
{
crc_Dbyte <<= 1;
continue;
}
crc_Dbyte <<= 1;
crc_Dbyte ^= pattern;
}
return crc_Dbyte;
}