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

冗余码怎么计算的

希赛网 2023-12-04 10:43:08

在信息传输或存储过程中,为了保证数据的完整性和正确性,通常需要添加冗余码。冗余码就是在原始数据的基础上增加的一些校验信息,可以检测和纠正传输或存储过程中的错误或损失。那么,具体来说,冗余码是怎样计算出来的呢?本文将从多个角度对此进行分析。

一、奇偶校验码

奇偶校验码是一种最简单的冗余码。其思想是通过统计数据位中1的个数,来确定校验位的值是0还是1。例如,对于一个7位的二进制数据,可以在末尾添加一个奇偶校验位,使得数据中1的个数为偶数时校验位为0,为奇数时校验位为1。这样在传输过程中,如果某一位出现错误,导致1的个数变成偶数或奇数,那么校验位的值就会和实际值不一致,从而发现并纠正错误。

二、循环冗余码

循环冗余码(CRC)是一类广泛应用的冗余码。其计算方法是先将原始数据和一组预定的除数进行多项式除法,并将余数作为冗余码添加到原始数据中。例如,对于一个16位的数据,可以采用预定的17位除数,进行多项式除法,得到一个16位的余数,将其添加到原始数据后面,就形成了一个含有16位数据和16位冗余码的数据包。在接收方,同样进行多项式除法,如果余数为0,说明数据传输没有出现错误,否则说明有错误发生,需要重新发送。

三、海明码

海明码是一种能够检测和纠正多位错误的校验码。其计算方法是先选定一个区块长度n,然后在原始数据的每隔n个比特中,添加k个校验比特,使得整个数据包长度变为 n+k。校验比特的计算方法是将数据包中每个区块中的比特进行奇偶校验,将结果作为校验比特的值。这样,在传输或存储过程中,如果某几个比特出现了错误,那么在接收方进行奇偶校验时,校验结果和对应的校验比特不一致,从而可以确定出出错的比特位置。如果出错的比特不超过k个,那么就可以直接纠正;如果超过k个,则可以发现错误并提示需要重新发送或存储。

以上三种冗余码的计算方法只是冰山一角,实际应用场景中还有很多其他类型的冗余码和计算方法。但无论哪种计算方法,其目的都是为了能够检测和纠正传输或存储过程中的错误和损失。因此,了解和应用适当的冗余码是非常重要和必要的。

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


软考.png


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

软考报考咨询

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