|
|
|
|
|
|
|
|
|
|
|
通常使用校验码的方法来检测传送的数据是否出错。基本思想是把数据可能出现的编码分为两类,即合法编码和错误编码。合法编码用于传送数据,错误编码是不允许在数据中出现的编码。
|
|
|
校验码中有一个重要概念是码距。码距是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
|
|
|
|
奇偶检验通过在编码中增加一位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。
|
|
|
|
海明码是利用奇偶性来检错和校验的方法。其构成方法是:在数据位之间插入k个校验位,通过扩大码距来实现检错和纠错。
|
|
|
|
循环冗余校验码(CRC)由两部分组成,左边为信息码(数据),右边为校验码。若CRC的字长为n,信息码占k位,则校验码就占n-k位。校验码是由信息码产生的,校验位越长,校验能力就越强。在求CRC时,采用的是模2运算。
|
|
|
|
|
|
|
|
|
|
|
|
|
计算机系统运行时,各个部件之间要进行数据交换,有两种方法可以确保数据在传送过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。通常使用校验码的方法来检测传送的数据是否出错。码距是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
|
|
|
|
奇偶校验是一种简单而有效的校验方法。其基本思想是,通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中奇数位发生了错误,也就是编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。
|
|
|
常用的奇偶校验码有3种,即水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
|
|
|
|
海明码的构成方法是:在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。设数据位是n位,校验位是k位,则n和k必须满足2k-1≥n+k的关系。
|
|
|
|
循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。CRC的代码格式如下图所示。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
计算机系统运行时,在各个部件之间经常需要进行数据交换,为保证数据传送过程的正确无误,必须引入差错检查机制对数据进行校验,以检测是否有数据传送错误。其基本原理是:在编码中引入一定的冗余位,当被传送的编码中出现错误时就使之成为非法代码而被检测出。
|
|
|
|
奇偶校验码用于并行码的检错。其原理是:在k位数据码之外增加1位校验位,使k+1位码字中取值为1的位数总保持为偶数(偶校验)或奇数(奇校验)。
|
|
|
|
|
|
(2)垂直校验:设4个字节的数据为一组进行垂直奇校验。
|
|
|
|
|
|
|
|
|
|
|
|
|