-
详解效验码原理、分类及在数据传输中的应用,
2025-07-18 00:21:28 1958世界杯
关于效验码有二大点
第一,什么是效验码
校验码通常是一组数字的最后一位,由前面的数字通过某种运算得出,用以检验该组数字的正确性。常见的校验码有中华人民共和国居民身份证的最后一位,ISBN号码的最后一位等。
凡设有校验码的代码,是由本体码与校验码两部分组成(如组织机构代码),本体码是表示编码对象的号码,校验码则是附加在本体码后边,用来校验本体码在输入过程中准确性的号码。每一个本体码只能有一个校验码,校验码通过规定的数学关系得到。
校验码编码分为两类:合法编码、错误编码。合理的设计错误编码和编码规则,可以在数据传输的时候发现某种错误是就会变成错误编码,从而达到检验错误的目的。
校验码主要是为了解决计算机各部件进行数据传输和交换,确保传送过程的正确无误,一是为了提高硬件电路的可靠性,二是提高代码的校验能力。通常会用校验码来检查传送的数据是否正确。
系统内部预先设置根据校验方法所导出的校验公式编制成的校验程序,当带有校验码的代码输入系统时,系统利用校验程序对输入的本体码进行运算得出校验结果之后,再将校验结果与输入代码的校验码进行对比来检测输入的正确与否。如果两者一致,则表明代码输入正确,系统允许进入,如果不一致,则表明代码输入有误,系统拒绝进入,并要求代码重新输入。
第二,效验码的分类
常见的校验码算法有:码距、奇偶检验、海明校验、循环冗余校验等。而常用的三种校验码:奇偶校验码、海明码、循环冗余校验码。
奇偶效验码:
海明码是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。
奇效验:原始码流+效验位 总共有奇数个1
偶效验:原始码流+效验位 总共有偶数个1
校验位只有一位,要么是0,要么是1。并且它的校验码可以放在码流的前面,也可以放在码流的后面.
对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中的奇数位发送了错误时(编码中的1变成0或者0变成1),则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。
常用的奇偶校验码有3种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码;
海明码:
海明码的编码规则如下: 设k个校验位为PkPk-1,…,P1,n个数据位为Dn-1Dn-2,…,D1D0,对应的海明码为Hn+kHn+k-1,…,H1,那么
Pi在海明码的第2i-1位置,即Hj=Pi,且j=2i-1,数据位则依序从低到高占据海明码中剩下的位置; 海明码中的任何一位都是有若干个校验位来检验的。其对应关系如下: 被检验的海明码的下标等于所有参与校验该位的校验位的下标之和,而校验位由自身校验。
循环冗余校验码:
循环冗余校验码(Cyclic Redundancy Check, CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式weik个数据位产生r个校验位来进行编码,其编码长度为k+r,循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k为,则校验码就占n-k位。其中,n为CRC码的字长,所以又称为(n,k)码。校验码是由信息码产生的,校验码位数越多,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。模2加减运算的规则是按位运算,不发生借位和进位。