一、校验码与码距
(一)校验码
定义:是计算机系统运行时,为确保数据在传递过程中正确无误所采用的方法,可用来检测传送的数据是否出错
作用:提高硬件电路的可靠性,提高代码的校验能力(查错和纠错)
基本思想
把数据可能出现的编码分为两类(合法编码和错误编码),合法编码用于传送数据,错误编码是不允许在数据中出现的编码
合理地设计错误编码以及编码规则,使得数据在传送中出现某种错误时就会变成错误编码,这样就可以检测出接收到的数据是否有错
(二)码距
-
定义:是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同,也就是从一个合法编码变成另一个合法编码需要变换的二进制位数
📑例如:4位8421码的码距为1,在传输过程中,此代码的一位或多位发生错误,都将变成另外一个合法编码,因此这种代码无查错能力
- 0和1均为合法编码,无法检查出错误
- 00和11在编码过程中出现01,因此有检错能力,但是不知道是00错,还是11错
- 000和111在编码过程中出现010,因此有检错能力,对于010知道是000错了,有纠错能力
⚠️增大码距能够提高一个编码的纠错和检错能力,但并不是越大越好,太大的码距使得编码长度增加
二、校验码的分类
(一)奇偶校验码(只能检错)
奇偶校验是一种简单有效的校验方法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2
对于奇校验,只能检测代码中奇数位出错的编码,但不能发现偶数位出错的情况。当合法编码中奇数位发生了错误,即编码中的1变成0或0变成1,则此编码中1的个数的奇偶性就发生了变化,从而可以发现错误
只能发现错误,而不能校正错误