专注在线职业教育25年
下载APP
小程序
希赛网小程序
导航

软考程序员教程知识点精讲之CRC码

责编:小狐狸 2016-09-13

>>>>>希赛网改版上线5周年庆,感恩钜惠!全场买就减,较高立减500,还有1元秒杀,5折限时抢购,众多“豪”礼等你来享,进入抢购!


       下面是希赛软考网为大家整理的软考程序员教程知识点精讲之CRC码,希望能帮助学友们。具体内容如下:


CRC码

一个二进制数可以用一个多项式来表示。例如,1011表示为多项式x3+x1+x0,在这里,x并不表示未知数这个概念,如果把这里的x替换为2,这个多项式的值就是该数的值。从这个转换我们可以看出,多项式较高幂次为n,则转换为二进制数有n+1位。

在循环冗余校验码(CRC码)中,编码是由K位信息码,加上R位的校验码组成。由K位信息码如何生成R位的校验码的关键在于生成多项式。这个多项式是编码方和解码方共同约定的,编码方将信息码的多项式除以生成多项式,将得到的余数多项式作为校验码;解码方将收到的信息除生成多项式,如果余数为0,则认为没有错误,如果不为0,余数则作为确定错误位置的依据。

和海明码的校验方程一样,生成多项式非常重要。但是,在考试中会直接给出,所以,我们并不要去关心如何生成多项式。生成多项式并非任意指定,它必须具备以下条件:较高位和最低位为1,数据发生错误时,余数不为0,对余数补0后,继续做按位除,余数循环出现,这也是冗余循环校验中"循环"一词的来源。

校验码的生成步骤如下。

(1)将K位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式:C(x)×xR.

(2)将这移位后的信息多项式除生成多项式,得到R位的余数多项式。

(3)将余数作为校验码嵌入信息位左移后的空间。

例如,信息位为10100110,生成多项式为a(x)=x5+x4+x+1,则:

 

得到余式为x4+x3,即校验码为11000,所以得到CRC码是:1010011011000.

CRC的纠错能力取决于K值和R值。在实践中,K值往往取得非常大,远远大于R的值,提高了编码效率。在这种情况下,循环冗余校验就只能检错不能纠错。一般来说,R位生成多项式可检测出所有双错、奇数位错和突发错位小于或等于R的突发错误。使用循环冗余校验码能用很少的校验码检测出大多数的错误,检错能力是非常强的,这是它得到了广泛应用的原因。

CRC由于其实现的原理十分易于用硬件实现,因此广泛地应用于计算机网络上的差错控制。而且由于它采用的是模二除进行验算,因此十分适合于以串行同步方式传送数据块。


       返回目录:软考程序员教程知识点精讲之数据运算汇总


     希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库软考历年真题)、软考培训教材软考视频教程,多样的培训方式包括在线辅导面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。

软考不知道考啥科目?扫码测最适合你的报考科目

企业微信截图_1770345743610.png

通关资源:软考各科历年真题各科学习资料汇总  |  在线试题库【点击刷题】

免费课程:系统架构设计师报考指南2026年高项备考指导课及精讲试听  

热门活动: 新年新起点,大额满减有惊喜hotgif.gif

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
相关阅读
查看更多

加群交流

公众号

客服咨询

考试资料

每日一练

咨询客服