[an error occurred while processing this directive]
|
unsigned char crc8 (unsigned char *buf, unsigned int len, unsigned char crc)
E-mail:
info@telesys.ru
{
unsigned int i,j;
unsigned char ret=crc,m,l;
for (i=0;i
m=1;
for (j=0;j<8;j++)
{
l=((buf[i]&m)?0x8c:0)^((ret&0x1)?0x8c:0);
ret>>=1;
ret^=l;
m<<=1;
}
}
return ret;
}
В сети еще где-то бродил табличный подсчет, он работает быстрее.
Ответы