校验码之奇偶校验码

时间:2021-08-19 16:09:02

校验码之奇偶校验码

在计算机系统中各部件需要进行数据交换,为了确保数据在传送过程中正确无误,我们需要使用校验码来测试数据是否出错。

校验的基本思想:将编码分为合法编码和错误编码。合理的设计编码规则使数据在传送过程中出现某种错误就会变成错误编码。

码距:是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。

例如4位8421就是码距为1

有人会问为什么4位8421码的码距为1呢?我们仔细读码距的概念就会理解之中的原因。

我看过一个例子拿来借用:

8421中,0001是合法的,从0001改变一位变成0000也是合法的,所以码距是1,就是说如果传输过程中,信息改变了一位,仍然是合法的,就很难检测出错误;但如果用00代表0,11代表1,如果还是原来的从00 00 00 11改变一位,收到的信号变成00 00 00 10就是不合法,就可以把错误信号退回去重发,而如果想要合法就要变成00 00 00 00,也就是至少改变2位才能合法,码距就是2.所以扩大码距方便检测。

 

奇偶校验包含奇校验和偶校验两种校验。奇校验(Odd Parity)是这样一种校验:它所约定的编码规律是,让整个校验码(包含有效信息和校验位)中“1”的个数为奇数。而偶校验(Even Parity)约定的编码规律是,让整个校验码中“1”的个数为偶数。有效信息(被校验的信息)部分可能是奇性(“1”的个数为奇数)的,也可能是偶性的,所以奇、偶两种校验都只需配一个校验码,就可以使整个校验码满足指定的奇偶性要求。这个校验位取“0”还是“1”的原则是:若是奇校验,则连同校验位在内编码里含“1”的个数共有奇数个;若是偶校验,则连同校验位在内编码里含“1”的个数是偶数个。

【例】有效信息为10001101,分别求奇校验编码和偶校验编码

【解】有效信息中有4个“1”,所以奇校验的校验位去“1”才能使“1”的总数为奇数个;偶校验的校验位去“0”才能使“1”的总数为偶数个。所以,奇校验编码为110001101;偶校验编码为010001101