本篇目录

前言

一、校验码

1.校验码

2.码距

3.检错与纠错

二、奇偶校验码

三、海明码

1.海明校验码的原理

2.校验位的计算方法

四、CRC码(循环冗余校验)

总结


前言

跟着王道的考研复习指导,学习了三种校验码,做一个小结。


一、校验码

1.校验码

信息传输过程可能出现一些错误,于是发送端与接收端就会约定一种规则,发送端根据这种规则以及要发送的有效信息,来计算得出几位校验码。发送端在发送时,通过在有效信息位外再附加这些校验码,使接收端能够通过这些校验码得知接收的数据是否有误,甚至能判断错误的数据位置。这就是校验码的作用。

2.码距

一种信息编码,它的编码方式决定了任意两个码字之间的最小距离,即码距。如果一种编码,它的合法码字之间的距离是1,这意味着假如有一个合法码字在传输过程中有一位出错了,它会变成另外一个合法码字。由于变化的结果仍然是合法的码字,接收端就无法判断接收的码字是否是正确的。比如发送端与接收端约定使用三位来表示数字0-7,这样的编码的码距就是1,即便传输过程中有一位出错,接收端也无法得知传输有错,因为接收到的仍然是合法的码字。但是假如发送端与接收端约定,使用001、010、100来表示数字1 、2、4,(这种编码的码距为3)那么接收端如果收到了011这样的结果,就知道这是一个不合法的码字,接收端就能知道其中一定出错了。

要计算两个合法码字之间的码距,就将这两个合法码字进行异或运算,看得到的结果中有几个1,码距就是几。或者也可以理解为比较这两个合法码字,看有几位翻转了,码距就是几。

3.检错与纠错

如果一种编码的码距为1,那么就无法进行校验。因此想要有校验能力,一种编码的码距至少要是2。码距越大,检错、纠错(指出出错的位置)能力越强。L-1=D+C,且D≥C,L即最小码距,D即检错能力,C即纠错能力。


二、奇偶校验码

奇偶校验码是在有效信息位前边加上一位校验码,码距为2,可以检测一位错误(或奇数位错误),不能确定出错的位置。

奇校验码:整个校验码(校验位和有效信息位)中“1”的个数为奇数;

偶校验码:整个校验码(校验位和有效信息位)中“1”的个数为偶数;

收发端约定采用的是奇校验还是偶校验,然后接收端对接收的数据进行校验。比如,1011是奇校验码,0011是偶校验码。


三、海明码

海明码的实质还是奇偶校验码,只不过它利用多重奇偶校验,就不仅可以检错,还能指出一位错误的位置。因为海明码能纠错1位,那么至少就能检错1位,因此码距至少为3 。

1.海明校验码的原理

如果给整个校验码设置角标,从1开始,从最后侧开始,那么海明码的校验位设置在角标为2^n (n从0开始,到哪儿结束这取决于有效信息的长度)的位置上,其它位置就是有效信息位。也就是说,校验位是穿插在有效信息位中的。每个有效信息位的角标,总是可以表示成某些校验位的角标之和,比如角标6就可以表示成(2+4),角标7可以表示成(1+2+4),这是使用海明校验码的基础。由此可以知道,有效信息位数n 与校验位的位数k 存在这样的关系:整个校验码的长度(n+k) ≤ 2^k-1 即k个校验位能表示的最大角标。

2.校验位的计算方法

1.根据上述公式,依据有效信息的长度,确定校验位的个数。比如4位有效信息需要3位校验位。

2.用符号表示出整个校验码。

 角标 7  6  5  4  3  2  1 值 D4 D3 D2 P3 D1 P2 P1
校验位         -     -  -

3.列表法表示出每个有效信息位的角标由哪几位校验位的角标组成

P1(角标1) P2(角标2) P3(角标4)
H1 角标3 1 2
H2 角标5 1 4
H3 角标6 2 4
H4 角标7 1 2 4

4.计算每一个校验位的值,计算方法就是将表中对应的有效信息位的值进行异或。比如上表中P1校验位的值 = H1⊕H2⊕H4。 这样校验码就完成了。例如,1010对应的海明码为1010010 。

5.接收端根据收到的有效信息位,以同样的方法计算出每一个校验位,如果与收到的校验位一致,那么收到的信息正确。若不一致,则可以根据不一致的校验位来确定是哪一位出错了。


四、CRC码(循环冗余校验)

CRC码利用的是除法。

任何一个二进制编码可以用一个系数仅为1或0的多项式来表示,多项式的最高次用R表示,那么这个二进制编码就有R+1位。收发端约定一个多项式作为规则。如果让这个二进制编码作为除数,然后用有效信息作为被除数,去做除法,那么余数一定可以用R位二进制表示(最多有R位)。由此,就让有效信息位先左移R位,即在有效信息位的右边先填补R个零(作为校验位) 。然后以左移之后的有效信息作为被除数,与多项式对应的二进制编码作为除数,进行除法运算,最终能够得到一个R位的余数。这个余数就是校验位。这样,整个校验码就应该能够被除数所整除了。发出端就将这个校验码发出。

接收端只要检查一下,校验码是否能够被约定的多项式所对应的二进制编码(也就是除数)所整除,就可以了。如果能,那接收的信息正确。如果不能,那么可以根据余数来判断发生错误的位置。

做除法运算时,从被除数的最左边的R位开始,每一次异或运算后,就向后取一位,每次都是R位参与运算。运算时,若被除数最高位为1,则商为1;若被除数最高位为0,则商为0 。直到被除数的位数用完,算出R位余数。


总结

本文总结了三种常见的校验码(奇偶校验码、海明码、循环冗余校验(CRC)码)。

【考研·计算机组成原理】校验码 小结相关推荐

  1. 计算机组成原理偶校验编码设计,计算机组成原理校验码生成电路的设计.doc

    计算机组成原理校验码生成电路的设计 编 号:学 号: 9 课 程 设 计 教 学 院计算机学院课程名称计算机组成原理课程设计题 目校验码生成电路的设计专 业计算机科学与技术班 级计科一班姓 名陈建辉同 ...

  2. [软考知识点总结③] 【中级软件设计师】计算机组成原理——校验码、海明校验码、奇偶校验码、循环校验码

    奇偶校验码(Parity Codes) 奇偶校验码最简单,但只能检测出奇数位出错. 如果发生偶数位错误就无法检测. 但经研究是奇数位发生错误的概率大很多. 而且奇偶校验码无法检测出哪位出错.所以属于无 ...

  3. 计算机组成原理 外部设备分为,2017考研计算机组成原理第七章考点:外部设备...

    2017考研计算机组成原理第七章考点:外部设备 2016-03-15 13:33 | 考研集训营 对于参加计算机统考的学生来说,2017考研的准备工作需要提前进行,因为计算机考研专业课涵盖了四门科目, ...

  4. 计算机组成原理与系统结构本章小结,计算机组成原理本章小结精简版.doc

    计算机组成原理本章小结精简版 计算机组成原理本章小结精简版 第一章 计算机系统概论 划分通用.专用机: 1.效率:2.速度:3.价格:4.运行的经济性和适用性 通用计算机划分: 超级计算机:大型机:服 ...

  5. 计算机组成原理浮点数左移规则,2020考研计算机组成原理知识点:浮点数的表示和运算...

    2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机组成原理知识点:浮点数的表示和运算,希望能帮助大家! 浮点数的表示和运算 1. 浮点数的表示 1)浮点数的表示范围; 浮点数是指 ...

  6. 2018考研计算机原理,2018考研计算机组成原理名词释义(8)

    2018考研计算机组成原理名词释义(8) 2017-08-10 13:57 | 考研集训营 对于参加计算机统考的学生来说,2018考研的准备工作需要提前进行,因为计算机考研专业课涵盖了四门科目,考察范 ...

  7. 【计算机组成原理】码距怎么计算

    [计算机组成原理]码距怎么计算 计算码距的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数. 例如110和011这两个位串,对它们进行异或运算,其结果是: 110⊕011 ...

  8. 【考研计算机组成原理】课堂笔记目录汇总——知识点清晰

    文章目录: 一:基础笔记 二:强化笔记 三:冲刺笔记 一:基础笔记 [考研计算机组成原理]课堂笔记1 第一章 计算机系统概论Introduction to computer systems [考研计算 ...

  9. 考研计算机组成原理难度,考研计算机组成原理特点及复习攻略

    摘要: 考研计算机组成原理特点及复习攻略,新东方在线编辑收集整理,为考研考生备考使用,预祝大家考研备考顺利,成功进入梦想的院校. 组成原理内容比较零乱,条理有点繁杂:并且计算机是一个内部运行状态难以直 ...

  10. 计算机阵列除法器原理,计算机组成原理原码阵列除法器.doc

    计算机组成原理原码阵列除法器 计算机组成原理 专周报告 成都电子机械高等专科学校计算机工程系 ` 目 录 一.项目名称1 二.实验目的1 三.不恢复余数的阵列除法器介绍1 四.逻辑流程图及原理3 算法 ...

最新文章

  1. 第二节 数学基础与语言学基础
  2. Office WORD如何设置表格背景颜色
  3. JSP页面传值出现中文乱码的问题
  4. Latex学习记录2
  5. 终止运行线程的注意事项
  6. 创建Maven web工程不能解析EL表达式的解决办法
  7. html科学计算器,html+css+js实现科学计算器
  8. ContentProvider简单介绍
  9. animate将flash转换html,Animate—flash动画入门到精通教程
  10. 网络工程师考试常用计算公式汇总
  11. 山寨google, 新做了1个网站 googler.cc ,做的很山寨 喜欢的朋友可以去看看哈
  12. FLV视频合并-JAVA代码
  13. 计算机24点游戏音调,24点游戏,任意点游戏在线计算器,4个数加减乘除算24点,任意点_三贝计算网_23bei.com...
  14. idea关联scala与spark开发(全)
  15. 良心分享 50 款程序员“神器级”的网站,你一定用得上,老少皆宜
  16. chown与chmod的区别
  17. IOC容器中bean的生命周期,iocbean生命周期
  18. 计算机打音乐两只老虎,两只老虎(音乐、汇编程序)
  19. 回调函数举例ajax,通过回调函数的理解来进一步理解ajax及其注意的用法
  20. 联发科RT2880/RT3052/RT3883/RT5350/RT3352无线路由器wifi芯片

热门文章

  1. SN74AHCT541PWR缓冲器 非反向1Element 8 Bit per Element 三态 Output 20-TSSOP
  2. 计算机控制系统的框图,计算机控制系统软件框图
  3. 阿里云1+X-云计算开发与运维(单选题)
  4. Python-Tkinter和PyInstaller简介及定时关机程序的简易实现
  5. React实现(Web端)网易云音乐项目(三),错过了真的可惜呀
  6. 使用jasypt加密解密
  7. Dubbo系列之Dubbo原理简介
  8. STM32F10x系列GPIO寄存器BRR、BSRR、ODR、IDR的使用理解
  9. 软件工程--面向对象的分析和设计方法
  10. 舆情网比较好用及比较实用的舆情系统工具参考