CRC 多项式校验算法

作者在 2009-01-05 17:48:22 发布以下内容
用的生成多项式为x16+x12+x5+1的校验算法
//功能:CRC的生成
//参数:DataLength     数据长度
//             *EncodeData   数据流
//             *CRC                 CRC位流
//无返回值
void   CRCEncode(int   DataLength,int   *EncodeData,int   *CRC)
{
int   i;
int   CRC15Temp;

for(i   =   0;   i   <=   15;   i++)   CRC[i]   =   0;
for(i   =   0;   i   <=   DataLength   -   1;   i++){
CRC15Temp   =   CRC[15]   ^   EncodeData[i];
CRC[15]   =   CRC[14];
CRC[14]   =   CRC[13];
CRC[13]   =   CRC[12];
CRC[12]   =   CRC[11]   ^   CRC15Temp;
CRC[11]   =   CRC[10];
CRC[10]   =   CRC[9];
CRC[9]   =   CRC[8];
CRC[8]   =   CRC[7];
CRC[7]   =   CRC[6];
CRC[6]   =   CRC[5];
CRC[5]   =   CRC[4]   ^   CRC15Temp;
CRC[4]   =   CRC[3];
CRC[3]   =   CRC[2];
CRC[2]   =   CRC[1];
CRC[1]   =   CRC[0];
CRC[0]   =   CRC15Temp;
}
}
协议 | 阅读 8882 次
文章评论,共0条
游客请输入验证码
浏览1942936次