前言
1、小提示:本篇博文是参考王道,在复习 ASCII 码的基础上,总结校验码的相关学习知识点,并在最后搭配习题(含408真题)进行巩固练习。(对重点内容进行划线、标色)
2、适用人群:408考研、备考高中信息技术教师资格证、学习《计算机组成原理》的人员
3、可搭配学习的链接:
【考研】计组:中断_计组中断过程
【考研】计组习题:存储器
一、字符编码 ASCII 码与校验码
1、ASCII 码的概念
7 位的二进制编码(字符系统),每个字节的最高位保持为0,可用于传输时的奇偶校验位,可表示 10 个十进制数码、52 个英文大写和小写字母(A - Z, a - z),及一定数量的专用符号(如 %、+、=、$ 等),共 128 个字符。
2、编码值与其对应的ASCII 码表示
编码值 | 0-31 | 32 | 32-126 | 127 |
ASCII 码 | 控制字符 | 空格SP | 可印刷字符(95个字符) | DEL码 |
注意:0 - 9 的 ASCII 码值为 48 (011 0000) - 57(011 1001),即去掉高 3 位,只保留低 4 位,正好是二进制形式的 0 - 9。 |
3、校验码(又称检错纠错编码)
1、定义
指能够发现或能够自动纠正错误的数据编码。
2、原理
通过增加一些冗余码,来检验和纠错编码。
3、码距
任意两个合法码字之间最少变化的二进制位数,称为数据检验码的码距。
对于码距不小于 2 的数据检验码,开始具有检错能力。
码距越大,检错纠错能力就越强,而且检错能力总是大于等于纠错能力。
如:
(1)1100 和 1101 之间的码距为1(因为只有最低位翻转了)
(2)1100 和 1011 之间的码距为3(因为低 3 位翻转了)
二、奇偶校验码
1、定义与实现方法
(1)定义
在原编码上加一个校验位,它的码距等于 2,可检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错误,增加的冗余位称为奇偶校验位。
奇偶校验码的格式 | |
奇偶校验位 | 有效信息位 |
1位 | n 位 |
(2)实现方法
由若干位有效信息(如 1 B)再加上一个二进制位(校验位)组成校验码,如上图。校验位的取值( 0 或 1 )将使整个校验码中的 “ 1 ” 的个数为奇数或偶数。
2、奇偶校验码的校验规律
整个校验码(有效信息位和校验位)中 “ 1 ”的个数 | |
奇校验码 | 奇数 |
偶校验码 | 偶数 |
3、缺点
具有局限性,奇偶校验只能发现数据代码中奇数位的出错情况,但不能纠正错误,常用于对存储器数据的检查或传输数据的检查。
4、用习题理解概念
例1 : 给出两个编码 100 1101 和 101 0111 的奇校验码和偶校验码。
解:设最高位为校验位,余 7 位是信息位,则对应的奇偶校验码为:
三、海明校验码
1、实现原理
在有效信息位中加入几个校验位形成海明码(又称汉明码),并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化。(即可发现错位,也可指出错位的位置,为自动纠错提供依据)
2、纠错理论【 L - 1 = D + C,且 D >= C】
编码最小码距 L 越大,其检测的错误的位数 D 越大,纠正错误的位数 C 也越大,且纠错能力小于等于检错能力。
3、求解海明码的步骤
假设:海明码为
信息位(n)为
校验位(k)为
步骤(共五步) | 说明 |
(1)确定海明码的位数 | 设 n 为有效信息的位数,k 为检验位的位数,则需满足 (若要检测 2 位错,则需再增加 1 位校验位,即 k+1 位) |
(2)确定校验位的分布 | 规定校验位 在海明位号为 的位置上,其余各位为信息位。即 P1 的海明位号为 ,即 H1 为 P1;同理可知, |
(3)分组以形成校验关系 | 每个数据位用多个校验位进行校验,要满足:被校验数据位的海明位号等于校验该数据位的各校验位海明位号之和。(校验位不需要再被校验) |
(4)校验位取值 | 校验位的值为第 i 组(由该校验位校验的数据位)所有位求异或。 0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1) |
(5)海明码的校验原理 | 每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查,构成 k 个校验方程。 |
4、用习题理解概念
例2 : 在 n = 4、k = 3 时,求 1010 的海明码。
解:如下图
四、CRC(循环冗余校验码)
1、基本思想
在 K 位信息码后再拼接 R 位的校验码,整个编码长度为 N 位,因此,CRC 又称 (N , K)码。
2、用习题理解概念
例3:设生成多项式为 ,信息码为10 1001,求对应的 CRC 码。
解:如下图
五、习题(含真题)
1、用海明码对长度为 8 位的数据进行检错、纠错时,若能纠正一位错则校验位数至少为 ( C )
A. 2 B. 3 C. 4 D. 5
解:设校验位的位数为 k ,数据位的位数为 n ,海明码能纠正一位错应满足关系 。当 n = 8 时,当 k = 4 时满足关系式,有 ,即 校验位至少是 4 位。
2、设在网络中传送采用偶校验的 ASCII 码,当收到的数据位为 10101001 时,可以断定( C )
A. 未出错 B. 出现偶数位错 C. 未出错或出现偶数位错 D. 出现奇数位错
解:一位奇偶校验码只能发现奇数位错误。
本题中,收到的数据中有偶数个 1(即4个“1”),这样可能没有出错,也可能出现了偶数位错误。(奇偶校验码无法发现偶数位错)
3、能发现两位错误,并能纠正 1 位错的编码的是( B )
A. CRC 码 B. 海明码 C. 奇校验 D. 偶校验码
解: (1)奇偶校验码都不能纠错。
(2)CRC 码可以发现并纠正信息串行读 / 写、存储或传送中出现的一位或多位错(与多项式的选取有关)
(3)海明码能发现两位错误,并纠正 1 位错。