希赛考试网
首页 > 软考 > 软件设计师

循环冗余码生成多项式的计算

希赛网 2023-12-04 08:27:35

循环冗余码 (Cyclic Redundancy Check,CRC) 是一种常见的校验码技术,应用广泛于通讯领域中数据传输错误的检测和纠正,文件校验等应用场景中。其核心是生成多项式的计算,本文将从理论和实践两个角度阐述。

一、理论

多项式生成函数是循环冗余校验的核心,它可以将数据块看成一个位串来作为这个多项式的系数,从而使多项式和数据块之间建立了一种变换关系。在生成式的计算中,不同的多项式生成函数会影响循环冗余码的性能。

多项式生成函数一般采用一个整数来描述,而这个整数的二进制形式就是所定义的多项式。对于一组数据,在进行循环冗余校验时,可以将数据加上一些冗余信息,最终形成的数据块传输给接收端,并在接收端再次计算生成循环冗余码来检查数据传输的准确性。

在模2加法和模2乘法的运算下,最常用的 CRC 生成多项式有标准CRC-16、CRC-32、CRC-CCITT等。CRC-16和CRC-CCITT主要用于通讯和串口通讯等通讯领域中,而CRC-32主要用于文件校验中。

二、实践

在程序开发中,循环冗余码的生成多项式的计算是很重要的一步。一般来说,程序员可以采用现成的库函数或者第三方工具进行计算,但对于一些特殊场景下的循环冗余码计算,程序员也需要掌握手动计算的方法。

手动计算生成多项式的方法是通过数学原理来进行的,一般遵循以下步骤:

1.确定生成多项式的次数n,其中n就是生成多项式的位数

2.选定一个与生成多项式次数n相等的二进制为初始值,作为寄存器的初始状态

3.将待传输的数据块和生成多项式进行“异或”运算,得到结果

4.得到结果后,将这个结果再次进行“异或”运算,得到CRC校验值

3、

微信扫一扫,领取最新备考资料


软考.png


软件设计师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
软件设计师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考报考咨询

微信扫一扫,定制学习计划