校验码——奇校验和偶校验

一.什么是校验码?


校验码是指能够发现或能够自动纠正错误的数据编码,也称作检错纠错码。通常某种编码有许多码字构成,任意两个合法码字之间最少变化的二进制位数,称为数据校验码的码距,如 1100 和 1101 之间的码距为 1,因为只有最低位翻转了;而 1001 和 0010 之间的码距为 3,因为只有 1 位没有变化。对于码距不小于 2 的数据校验码,开始具有检错的能力。码距越大,检错纠错的能力越强,而且检错能力总是大于等于纠错能力。常用的校验码有奇偶校验码、海明校验码和循环冗余校验码。

原理:通过增加一些冗余码,来检验或纠错编码。


二.奇偶校验码

        1、定义
  • 在被传送的 n 位代码上增加一位校验位,并使其配置后的 n+1 位代码中“1”个数为奇数,则称为奇校验;若配置后“1”的个数为偶数,则称为偶校验。
     2、特点
  • 奇偶校验码的码距为 2,可以检测出一位错误(或奇数错误),但不能确定出错的位置,也不能够检测出偶数位错误。

3、例子
  • 简单例子如下:
    在这里插入图片描述

4、缺点
  • 具有局限性,奇偶校验只能发现数据代码中奇数位的出错情况,但不能纠正错误。

5、使用范围
  • 奇偶校验通常用于 I/O 设备,如键盘输入时使用的 ASCII 码,对存储器数据的检查,对传输数据的检查。

6、8421 码的奇偶校验码


     7、补充带符号的 BCD 码的表示


三.海明校验码

1、概念
海明码是一种多重奇偶校验码,原理是在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中;当某一位出错后,就会引起有关的几个校验位的值发生变化,不但可以发现错位,还能指出出错的位置,为自动纠错提供依据。
根据纠错理论得:
L - 1 = D + C 且 D≥C
即编码最小码距 L 越大,其检测错误的位数 D 越大,纠正错误的位数 C 也越大,且纠错能力恒小于等于检错能力。
————————————————
2、步骤
在 n=4,k=3 时,求 1010 的海明码
1)确定海明码的位数
设 n 为有效信息的位数,k 为校验位的位数,则 n,k 应当满足:n+k≤2k-1(若要检测两位错,则需要再增加 1 位校验位,即 k+1 位)
代入 n,k 式子成立,则 n,k 有效。设信息位为 D4D3D2D1(1010),共四位,校验位为 P3P2P1,共 3 位,对应的海明码为:H7H6H5H4H3H2H1。
————————————————

2)确定校验位的分布
规定校验位 Pi 在海明位号为 2^(i-1) 的位置上,其余各位为信息位,例如:P1 的海明位号为 2^0=1,即 H1 为 P1,所以海明码各位的分布如下:

3)分组以形成校验关系
每个数据位用多个校验位进行校验,但要满足条件:被校验数据位的海明位号等于校验该数据位的各校验位海明号之和。另外,校验位不需要再被校验。分组形成的校验关系如下:

4)校验拉取值
  • 校验位 Pi 的值为第 I 组(由该校验位校验的数据位)所有位求异或(则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0;同为0,异为1)。由3)得:
    在这里插入图片描述
  • 所以,1010 对应得海明码为 1010010
5)校验

在这里插入图片描述

3、校验原理

在这里插入图片描述


参考文献:博主御承扬的文章、《计算机组成原理》(第六版·立体化教材)白中英 戴志涛 主编

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值