前言

期末复习了,发现循环冗余码的计算方法老是忘,特此记录一下

内容仅供参考,如果有不对的地方,敬请海涵,望多指教!

计算步骤
  1. 计算冗余位的位数,即生成多项式的最高阶数

  2. 在信息位后补冗余位个数的0

  3. 将第二步的结果与生成多项式相除,这里采用的除法叫做模2除法,就是只要部分余数的高位为1,便可商1 之后上下做的减法是异或。

  4. 经过第三步不断地计算后得到余数
    将信息为后面补的0换成余数

实例练习

给定信息位为1010001 ,预先商定的多项式为X4+X2+X+1,求循环冗余码

我们根据计算步骤走一遍就可以了。

解:

  • 生成多项式最高阶数是4,所以冗余位的位数是4.
  • 信息位后补0,所以信息位变成了1010001 0000
  • 用信息位除生成多项式,即1010001 0000 除 10111
    计算过程如下:
    在这里插入图片描述
    最开始上1,上下相减,结果为00011 ,位数不够,商上两个0
    在这里插入图片描述
    够了,上1
    在这里插入图片描述
    上下相减 得01101,即1101
    在这里插入图片描述
    下来一个0,上1
    在这里插入图片描述
    上下相减,为01101 即1101

在这里插入图片描述
下来一个0,商1,剩下的类似,全部过程如下
在这里插入图片描述
这个余数1101就是我们要找的冗余位

  • 将信息位后面补的4个0换成余数,信息位变成1010001 1101

即得到CRC循环冗余码

如何检测信息有没有差错

若循环冗余码可以将生成多项式整除,即没有差错,否则,存在错误。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐