提示:以下是本篇文章正文内容,下面案例可供参考
一、CRC冗余校验算法
byte Crc_CalculateCRC8_desay(byte data[],int dataLen)
{
int i,j;
byte polynomial; //多项式
byte initValue; //初始值
byte xorout; //结果异或值
polynomial = 0x2F;
initValue = 0xFF;
xorout = 0xFF;
for(i=0;i<dataLen;i++) //data数组存放待校验数据;
{
initValue = initValue ^ data[i];
for(j=0;j<8;j++)
{
if(initValue & 0x80)
{
initValue = ((initValue << 1) & 0xff);
initValue = initValue ^ polynomial;
}
else
{
initValue = ((initValue << 1) & 0xff);
}
}
}
initValue = initValue ^ xorout;
return(initValue); //返回CRC值
}