校验码

        计算机系统运行时,各个部件之间要进行数据交换,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性;二是提高代码的校验能力,包括查错和纠错。通常使用校验码的方法来检测传送的数据是否出错。

        其基本思想是把数据可能出现的编码分为两类:合法编码和错误编码。合法编码用于传送数据,错误编码是不允许在数据中出现的编码。

         码距是校验码中的一个重要概念。所谓码距,是指一个编码系统中任意两个合法编码之间至少多少个二进制位不同。

         常用的三种校验码:奇偶校验码、海明码、循环冗余校验码。

1.奇偶校验码

奇偶校验是一种简单有效的校验方法,这种方法通过在编码中增加一个校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。对于奇偶校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中奇数位发生了错误,即编码中的1变成0或0变成1,则该编码中的1的个数的奇偶性就发生了变化,从而可以发现错误。常见的奇偶校验码有三种:水平奇偶校验码、垂直奇偶校验码、水平垂直校验码。

         (1)水平奇偶校验码:对每一个数据的编码添加校验位,使信息位与校验位处于同一行。

         (2)垂直奇偶校验码:这种校验码把数据分成若干组,一组数据占一行,排列整齐,再加一行校验码,针对每一列采用奇校验或偶校验。

         (3)水平垂直校验码:在垂直校验码的基础上,对每个数据再增加一位水平校验位,便构成水平垂直校验码。

2.海明码

海明码也是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是:在数据位之前插入K个校验位,通过扩大码距来实现检错和纠错。

3.循环冗余校验码

循环冗余校验码广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其长度为k+r。循环冗余校验码是由两部分组成的,左边为信息码,右边为校验码。校验码由信息码产生的,校验码位数越长,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。

模二加减运算的规则是:按位运算,不发生借位和进位。

 

——摘自《程序员教程》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值