4# Ryanhsiung
我在网上看了一点CRC效验的**,不是太懂,比如这段话:
除了多项式,初始值的差异外,有的实现采用了MSB first,有的则是LSB first,就是所谓的reflection。另外有的实现在结果上还进行异或操作,高低字节对调等操作。这样下来都叫做CRC-CCITT的不同实现会有多种完全不同的结果。
链接的CRC计算器里面所使用的的算法初始值,最终异或都为0,MSB first(没有reflection),没有高低字节对调。Linux Kernel的算法则使用了初始值0xFFFF,LSB first。如果是表格实现的话,你会发现第一种实现的table[1]=0x1021,就是CCITT的多项式值,而Linux实现的table[1]=0x1189,这个值是哪里来的呢?原来Linux实现的table[0x80]=0x8408,即reversed CCITT多项式,而0x80正是1的reflection。
里面的MSB LSB 和CRC-CCITT都是什么呢? 能说下吗? 谢谢。
|