CRC的原理:不准确的说就是用数据包除以CRC多项式。
数据包不用说了,CRC多项式是什么呢?CRC多项式就是一个8bit的数,要求最高位是1,因此CRC16的CRC多项式就是16bit,CRC32的CRC多项式就是32bit。
那么怎么除呢?就是把数据包和CRC多项式按位异或,一直异或到最后一位,最后结果就是CRC的值。
废话不多讲,举一个例子看看:
CRC多项式取0x85,即1000 0101
数据包取byte型的数组,这里取三字节。{0x11,0x22,0x33}
运算步骤如下:
最后的结果就是0100 0001即0x41。
联系客服