奇偶校验

来自计算思维百科
跳转至: 导航搜索
奇偶校验.jpg

实际上计算机只能认识由0和1组成的一个字符串。计算机跟计算机交流的时候用的也是0和1组成的字符串,但是由于在数据传输过程中,可能会因为环境噪音的影响,把0变成1,把1变成0,这样数据就会出错,那么有什么方法来检测错误吗?

解决方案-奇偶校验法

对于出现奇数个位的错误,可以利用奇偶校验的方法进行检查。根据传输数据中1的个数是奇数进行校验的称为“奇校验”,是偶数的称为“偶校验”。

假如计算机A发送数据01101011至计算机B,用的是奇校验,那么执行以下步骤:

1)计算机A先将数据的每位相加:0+1+1+0+1+0+1+1=5是奇数,那么我就在数据串的最后添加一位作为检错码,这个检错码是1(如果结果是偶数,那么检错码是0);

2)计算机A将添加检错码的数据011010111发送给计算机B;

3)计算机B收到数据后,先提取出检错码“1”,然后将数据串的每位相加,看是否跟检错码的信息匹配:

如果计算机B收到的是010010111,可以看出有一位发生了错误,提取检错码后的字符串是01001011;

按位加得到0+1+0+0+1+0+1+1=4,而校验码是1,说明本来应该有奇数个1的,现在只有4个,这时候计算机B就会发送信号给计算机A,让它重新发送数据。

以上,就是计算机网络中简单而有效的奇偶校验方法,需要说明的是,这种方法只能发现错误,并不能知道错误发生在哪一位。

运用的计算思维

不难看出,奇偶校验算法的思想是增加一位,用来表示数据中“1”的位数信息,从而达到检错的效果,体现的是冗余保护的计算思维。