最近在学习循环冗余校验码,每隔一段时间就忘记了,所以写下这篇文章记录一下,为我的软考之路打下坚实的基础。好了,废话不多说,直接开始吧。
计算循环冗余校验码主要有以下三步。
1、计算冗余位的位数k,即多项式的最高阶数。
2、在信息位后面补上k个0.
3.将第二步的结果与生成多项式相除,这里采用的除法叫做模2除法,就是只要部分余数的高位为1,便可商1 之后上下做的减法是异或。
4.经过第三步不断地计算后得到余数将信息位后面补的0换成余数。
算了,讲再多的大道理都是纸上谈兵,所以我们还是直接在实例里面看吧。
假设给定的信息位1010001,预先商定的多项式为X4+X2+X+1,求循环冗余校验码。
1、我们现在就按照上面的四步一步步来,题目中的信息位为1010001,冗余位的位数k为多项式的最高阶位,即为4.
2、k=4,在信息为后面补上4个0,变为10100010000,多项式生成的二维码为10111。
3、将第二步得到的10100010000和10111采用模二除法,计算结果。计算过程如下:
1 2 3 4 5 6 7上面的计算就是采用模二除法,按位异或,对位相同为0,不同为1。不懂的小伙伴可以去问一下度娘,最后得到的余数1101就是我们要的冗余位,将信息位后面补上的k个0换成得到的冗余位1101就是我们需要的循环冗余校验码了。
所以最后的循环冗余校验码为10100011101。
最后是介绍一下循环冗余校验码的验证方法,用得到的循环冗余校验码去除以多项式的二进制数,能除尽就是正确的。
网友评论