CRC 循环冗余码的计算方法

前言

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

计算步骤

  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循环冗余码

如何检测信息有没有差错

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

发布了200 篇原创文章 · 获赞 99 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_43889841/article/details/103612409
今日推荐