1.简介
本文主要介绍在嵌入式系统上进行文件crc计算的方式,本文不涉及初始化,结果异或值,输入反转,输出反转等内容。
以下所有的视图,均是以大端模式查看的,且不是网络传输过程中的计算,即没有发生高低位的翻转。
1.1 crc计算方式
直接计算和查表法两种方式,这里主要讨论查表法;
1.2 直接计算
按照计算过程是否将完整的crc多项式写出来,分为完整的计算过程和精简的计算过程。
1.2.1 完整的计算
如生成多项式为:x8 + x5 + x4 + 1 ,则其对应的多项式为0x131,如果省略掉最高位,则写为0x31。
下面用这个多项式计算一个字节0x41的crc值:
由上图可知,计算的结果为0x0c,与标准结果计算一致。
1.2.2 精简的计算
由于上述多项式可以精简的写为0x31,多项式的首位1被省略。计算过程可以精简为下图,计算结果也是一样的。