70,020
社区成员




#include <stdio.h>
typedef unsigned char uchar;
typedef unsigned int uint;
uchar crc=0;
uchar crc4(uchar *ptr,uchar len) // ptr 为数据指针,len 为数据长度
{
uchar i;
while(len--)
{
for(i=0x80; i!=0; i>>=1)
{
if((crc&0x10)!=0)
{
crc<<=1;
crc^=0x13;//0x13为多项式
}
else
{
crc<<=1;
}
if(((*ptr)&i)!=0)
{
crc^=0x13;
}
}
ptr++;
}
return(crc);
}
int main()
{
uchar data[]={0x01,0x10};
uchar *pp = data;
uchar p = crc4(pp,2);
printf("%0X\n",p);
return 0;
}