计算法简单实现crc校验

计算法简单实现crc校验

ID:24734722

大小:55.50 KB

页数:4页

时间:2018-11-14

计算法简单实现crc校验_第1页
计算法简单实现crc校验_第2页
计算法简单实现crc校验_第3页
计算法简单实现crc校验_第4页
资源描述:

《计算法简单实现crc校验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、计算法简单实现crc校验-------------------0100101001110101<-16bCRC仿此,可推出两个字节数据计算如下:d为数据,p为项式,a为余数dddddddddddddddd0000000000000000<-数据D(D1,D0,0,0)pppppppppppppppp<-多项式P-----------------------------------...aaaaaaaaaaaaaaaa0<-第一次的余数A’(A’1,A’0)ppppppppppp

2、ppppp--------------------------...aaaaaaaaaaaaaaaa<-结果A(A1,A0)由此与一字节的情况比较,将两个字节分开计算如下:先算高字节:dddddddd000000000000000000000000<-D1,0,0,0pppppppppppppppp<-P-------------------------)的返回值是与d一一对应的,总数为256项,将这些数据预先算出保存在表里,f(d)就转换为一个查表的过程,速度也就可以大幅提高,这也

3、就是查表法计算CRC的原理。再来看CRC表是如何计算出来的,即函数f(d)的实现方法。分析前面一个字节数据的计算过程可发现,d对结果的影响只表现为对P的移位异或,看计算过程中的三个8位的列中只低两个字节的最后结果是余数,而数据所在的高8位列最后都被消去了,因其中的运算均为异或,不产生进位或借位,故每一位数据只影响本列的结果,即d并不100001//P-------------------0100101001110101现在的问题就是如何根据d来对P移位异或了,从上面的例子看,也可以理解为每步移位,但根

4、据d决定中间余数是否与P异或。从前面原来的例子可以看出,决定的条件是中间余数的最高位为0,因为P的最高位一定为1,即当中间余数与d相应位异或的最高位为1时,中间余数移位就要和P异或,否则只需移位即可。其方法如下例(上例的变形,注意其中空格的移动表现了d的影响如何被排除在结果之外):d--------a--------10000000000000000<-HSB=10000000000000000<-a<<=10001000000100001<-不含最高位的1-------

5、----------1000100000010000100100000010000100001000000100001-----------------00011000001100011<-HSB=00110000011000110-----------------10110000011000110<-HSB=111000001100011000001000000100001-----------------11101000110101101<-HSB=010100011010110

6、10-----------------01010001101011010<-HSB=101000110101101000001000000100001-----------------00101011010010101<-HSB=01010110100101010-----------------01010110100101010<-HSB=101011010010101000001000000100001-----------------0100101001110101<-C

7、RC结合这些,前面的程序就好理解了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。