请教crc16校验方式的原理?
听说crc16是一种标准校验方式,我也得到了一个crc16校验的函数
unsigned int CRC_16(unsigned int c,unsigned char d)
调用时:
unsigned char crcbuff[] = {31,3,0,1,0,7};
unsigned char a;
unsigned int crc16 = 0xffff;
for(a=0;a<6;a++)
{
crc16 = CRC_16(crc16,crcbuff[a]);
}
请问:
1。crc16是不是对无论多长的字符串都可以进行校验,然后将校验结果保存在一个变量当中?
2。接收到数据后是不是用本函数将接收到的字符串用这种方式找到校验码,然后与得到的校验码比较,就可以判断数据是否失真?