如何简单的计算且通俗的理解CRC码(循环冗余校验码)
CRC码的出现的契机
CRC(Cyclic Redundancy Check)码即循环冗余校验码 ,在计算机运行及数据传输时,由于种种原因会导致数据存储或接收时出现差错。为了发现并纠正信息在存储或传送过程中连续的多位错误代码,因此CRC校验码被广泛应用。
什么是模2运算
模2运算的特点是不考虑进位和借位的运算
- 模2加、模2减 :这两者的运算结果是相等的,即0±1=1,0±0=0,1±-=1,1±1=0;(即两个位的异或结果)
- 模2乘:模2和求部分积之和;
- 模2除 :可类比于平常的除法,只是不需要考虑借位;
怎么简单的求CRC码
1.若已知生成多项式G(x)=1011、有效信息(或被传输的信息)D共有n位,需写出它的多项式M(x)并找到多项式中最高次幂的值k;
那么问题来了,如何写出D的多项式呢?假设D有4位,D的值(D3D2D1D0)为1010。则M(x)=1x3+0x2+1x1+0x0。(可以看到xi的系数为Di的取值,xi的次幂与该位的Di的权值相关)
显然,D的多项式M(x)的最高次幂的值为3,即k=3;
2.由1式中计算所得的k值可知,在计算模2除法之前(CRC码的编码主要由模2除法运算求得)需将有效信息D扩展(左移)至n+k位。
续1式中的例子,则D左移k=3位

本文介绍了CRC码的出现背景,解释了模2运算的概念,并详细阐述了简单求CRC码的步骤,包括如何将有效信息转换为多项式、进行模2除法以及如何确定最终的CRC码。
最低0.47元/天 解锁文章
9576

被折叠的 条评论
为什么被折叠?



