奇偶校验码的特点是啥?为啥说它是可靠性代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇偶校验码的特点是啥?为啥说它是可靠性代码?相关的知识,希望对你有一定的参考价值。

奇偶校验码是 奇校验码 和 偶校验码 的统称.
它们都是通过在要校验的编码上加一位校验位组成.
如果是 奇校验 加上校验位后,编码中1的个数为 奇数个
如果是 偶校验 加上校验位后,编码中1的个数为 偶数个

例:
原编码 奇校验 偶校验
0000 0000 1 0000 0
0010 0010 0 0010 1
1100 1100 1 1100 0
1010 1010 1 1010 0
如果发生 奇数 个位传输出错,那么编码中1的个数就会发生变化.
从而校验出错误. 要求从新传输数据.

目前应用的 奇偶校验码 有3种.
水平奇偶校验码
对每一个数据的编码添加校验位,使信息位与校验位处于同一行.

垂直奇偶校验码
把数据分成若干组,一组数据排成一行,再加一行校验码.
针对每一行列采用 奇校验 或 偶校验
例: 有32位数据10100101 00110110 11001100 10101011
垂直奇校验 垂直偶校验
数据10100101 10100101
00110110 00110110
11001100 11001100
10101011 10101011
校验为00001011 11110100

水平垂直奇偶校验码
就是同时用水平校验和垂直校验
例:
奇校验 奇水平 偶校验 偶水平
数据 10100101 1 10100101 0
00110110 1 00110110 0
11001100 1 11001100 0
10101011 0 10101011 1
校验 00001011 0 11110100 1
参考技术A 奇偶校验码是 奇校验码 和 偶校验码 的统称.
它们都是通过在要校验的编码上加一位校验位组成.
如果是 奇校验 加上校验位后,编码中1的个数为 奇数个
如果是 偶校验 加上校验位后,编码中1的个数为 偶数个

例:
原编码 奇校验 偶校验
0000 0000 1 0000 0
0010 0010 0 0010 1
1100 1100 1 1100 0
1010 1010 1 1010 0
如果发生 奇数 个位传输出错,那么编码中1的个数就会发生变化.
从而校验出错误. 要求从新传输数据.

目前应用的 奇偶校验码 有3种.
水平奇偶校验码
对每一个数据的编码添加校验位,使信息位与校验位处于同一行.

垂直奇偶校验码
把数据分成若干组,一组数据排成一行,再加一行校验码.
针对每一行列采用 奇校验 或 偶校验
例: 有32位数据10100101 00110110 11001100 10101011
垂直奇校验 垂直偶校验
数据10100101 10100101
00110110 00110110
11001100 11001100
10101011 10101011
校验为00001011 11110100

水平垂直奇偶校验码
就是同时用水平校验和垂直校验
例:
奇校验 奇水平 偶校验 偶水平
数据 10100101 1 10100101 0
00110110 1 00110110 0
11001100 1 11001100 0
10101011 0 10101011 1
校验 00001011 0 11110100 1
参考技术B 格雷码、奇偶校验码、汉明码等

奇偶校验码 ,奇偶校验码检错原理,奇偶校验码的缺点。

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》

本章重点

  1. 什么是奇偶校验码?
  2. 奇偶校验码是怎么检错的?
  3. 奇偶校验码有什么缺点?

奇偶校验码


奇偶校验码是奇校验码和偶校验码的统称,是一种 「检错码」,用于检查二进制数据的 「位错」

奇偶校验码分为奇校验码和偶校验码两种方法。

一、奇校验码

奇校验码在数据发送前,「检查」1的个数,「奇数」个1就在头部填充0,「偶数」个1就在头部填充1,使数据整体保持奇数个1;

接收数据时,重新检查1的个数:

  • 「奇数」个则判定数据正常,去掉头部的填充符;
  • 「偶数」个则判定数据出错,重新发送数据帧。

二、偶校验码

偶校验码在数据发送前,也会「检查」1的个数,「偶数」个1就在头部填充0,「奇数」个1就在头部填充1,使数据整体保持偶数个1;

接收数据时,重新检查1的个数:

  • 「偶数」个1则判定数据正常,去掉头部的填充符; ​
  • 「奇数」个1则判定数据异常,重新发送数据帧。

三、执行流程

以奇校验码为例

1)发送端发送一个数据帧( 0110
2)发送前检查1的个数:

  • 如果是偶数个,就填充1(10110 ),发送数据
  • 如果是奇数个,就填充0(00110 ),发送数据

3)发送端接收数据时,检查1的个数:

  • 如果是奇数个1,则判定数据正常,去掉填充符(00110
  • 如果是偶数个1,则判定数据出错,需要将整个帧重发。

四、奇偶校验码的缺点

以奇校验码为例

发送前的数据是: 1110
只有1个位发生错误,比如第一位的1变成了0:0110 ,这时候1的个数是偶数,可以检查出错误。
但是,当两个位同时发生错误时,比如第一位、第二位的1都变成了0:0010 ,这时候1的个数仍然是奇数,奇校验码默认数据正常,从而导致检错失败。

这就意味着,当数据有奇数(1,3,5)个位发生错误时,奇偶校验码可以正常检错;而偶数(2,4,6)个位发生错误时,奇偶校验码不能正常检错。即检错率只有 50%

以上是关于奇偶校验码的特点是啥?为啥说它是可靠性代码?的主要内容,如果未能解决你的问题,请参考以下文章

奇偶校验位

CPU上奇偶校验标志的用途是啥?

奇偶效验码和海明码

奇偶校验

计算机组成原理校验码

奇偶校验,海明码与crc码