头疼!!CRC16校验如何理解??
CRC16校验程序,怎么理解啊,自己用手去算我知道怎么回事,不过用代码实的我就理解不了了,看了一天了,都开始怀疑自己的智商了!!!unsigned char test
={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
unsigned char len = 16;
void main( void )
{
unsigned int crc = 0;
unsigned char i;
unsigned char *ptr = test;
while( len-- )
{
for(i = 0x80; i != 0; i = i >> 1)
{
if((crc & 0x8000) != 0)
{
crc = crc << 1;
crc = crc ^ 0x1021;
}
else
{
crc = crc << 1;
}
if((*ptr & i) != 0)
{
crc = crc ^ 0x1021;
}
}
ptr++;
}
printf("0x%x ",crc);
} 占座!!!
页:
[1]