数据在传输的过程中会出现错误,CRC具有检测并纠错数据的能力。
一:什么是循环冗余检验码
简单一句话,循环冗余检验码就是附加在一串二进制信息后面的一串编码,用于检测数据的正确性。
二:循环冗余检验码的产生
CRC码是基于模2运算而建立编码规律的校验码。
(1):什么是模2运算
模2加:0+0=0,0+1=1,1+0=1,1+1=0;
模2减:0-0=0, 0-1=1, 1-0=0, 1-1=1;
模2乘:按模2加求部分积之和;
模2除:按模2减求部分余数。每求一位商应使部分余数减少1位。上商的原则是:
当部分余数的首位是1时,上商1;当部分余数的首位是0时,上商0。
当部分余数的位数小于除数的位数时,该余数既为最后余数。
(2):模2运算在求CRC时有什么用
CRC码就是对一串二进制信息进行模2除的余数。采用模2除的原因是:一定的除数,会得到相应位数的余数。
(3):如何求CRC码
假设有一组二进制信息组,用多项式M(x)表示,G(x)表示生成多项式, M(x)左移k位后模2除G(x)得到的余数既为CRC三:CRC的检错原理
转载于:https://my.oschina.net/shaoguobao/blog/14995