在学习计算机原理的时候总会遇到CRC校验相关的知识,也会有类似的题目,以题目为例简单讲解一下CRC的计算方式
题目如下:
若信息码字为111000110,生成多项式g(x)=x5+x3+x+1,求CRC的校验码
实际上就是模二运算的模二除法(百度一下就知道了)https://baike.baidu.com/item/%E6%A8%A12%E8%BF%90%E7%AE%97/18556715?fr=ge_ala
这里也简单讲解一下模二运算,模二运算是一种二进制计算方式,他也有加减乘除,但是需要注意的是 它的运算不存在进位和借位
模二加和模二减本质上是一种方式,
加:0+0 =0,1+0 =0+1 =1,1+1=0
减:0-0=0 1-1=0 1-0=1 0-1=1
简单的说就是偶数个1相加减等于0,奇数个1相加减等于1
模二乘和模二除
乘法:(也包含了加法)
0×0=0
0×1=0
1×0=0
1×1=1

除法:模2除法是模2乘法的逆运算(也包含了减法)
除法需要注意几个点
1.余数的位数小于除数的位数时,停止除法
2.只要被除数或部分余数的位数和除数一样,且最高位为1,不管其他位是什么数,商为1
下面就可以计算了:
首先我们应该知道CRC校验码的运算是在数据的后面添加检测差错的N为冗余码,然后再信息码后面加上冗余码就是实际要发送的数据,虽然数据帧长度增加了,但是减少了出错的几率。
第一步:根据生成多项式计算出除数
g(x)=x5+x3+x+1 推出 除数为 101011
第二步:在信息码后面补上多项式的最高阶数个0得到被除数
多项式的最高阶为5,补5个

本文以一道题目为例,详细解析CRC校验的计算过程。首先介绍模二运算,包括加减乘除的规则。接着说明CRC校验码的计算方法,通过生成多项式确定除数,补充0得到被除数,最后进行模二除法得到余数,从而得出CRC校验码。发送的信息码由原始信息码和CRC校验码组成。
最低0.47元/天 解锁文章
5259





