【计算机组成原理】海明校验码
将信息位分组进行偶校验,多个校验位,多个校验位标注出错位置。
1、确定海明码的位数
若有n个信息位,和k个校验位,为了保证可以标注错误。
2k种状态可以表示n+k位的状态,以及一种正确的状态。
2k>=n+k+1
n和k的对应关系。
n | 1 | 2~4 | 5~11 | 12~26 | 27~57 | 58~120 |
---|---|---|---|---|---|---|
k | 2 | 3 | 4 | 5 | 6 | 7 |
2、确定校验位的分布
信息位:1010
设信息位D1D2D3D4,共四位,校验位P1P2P3。共三位。加起来共七位。
校验位Pi应放在海明号为2i-1的位置上。
即上面的海明码应为:
D4D3D2P3D1P2P1
H7 | H6 | H5 | H4 | H3 | H2 | H1 |
---|---|---|---|---|---|---|
D4 | D3 | D2 | P3 | D1 | P2 | P1 |
1 | 0 | 1 | 1 |
3、求校验位的值
H3: 3-> 0 1 1
H5: 5-> 1 0 1
H6: 6-> 1 1 0
H7: 7-> 1 1 1
然后Pi的值为所有海明码位二进制值的第i位的值为1的信息位的异或值。
三个分组分别进行偶校验。
P1等于:H3异或H5异或H7=0
P2等于:H3异或H6异或H7=1
P3等于:H5异或H6异或H7=0
则海明码为:
H7 | H6 | H5 | H4 | H3 | H2 | H1 |
---|---|---|---|---|---|---|
D4 | D3 | D2 | P3 | D1 | P2 | P1 |
1 | 0 | 1 | 0 | 0 | 1 | 0 |
4、纠错
对各个分组进行检验,若分组内的校验位和信息位的异或值为0,无错。
S1 = P1异或D1异或H2异或D4
S2 = P2异或D1异或D3异或D4
S3 = P3异或D2异或D3异或D4
若接收到:1010010
S1 = P1异或D1异或H2异或D4 = 0011异或值为0
S2 = P2异或D1异或D3异或D4 = 1001异或值为0
S3 = P3异或D2异或D3异或D4 = 0101异或值为0
若出现错误得:S3S2S1=110,则第110位出错。D3出错。
补充
纠错能力:1位。检错能力:2位 。
但是若P1和P2发生错误,S3S2S1为011,表示第三位发生错误,这样是不对的。
因此需要加入全校验位。加上全校验位的海明码进行偶校验。
加入全校验位前提是加上P全,整体有偶数个1。即P全为整体海明码的异或值。
H8 | H7 | H6 | H5 | H4 | H3 | H2 | H1 |
---|---|---|---|---|---|---|---|
P全 | D4 | D3 | D2 | P3 | D1 | P2 | P1 |
1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
若S3S2S1= 000 且全体偶校验成功 无错误
若S3S2S1≠ 000 且全体偶校验失败 有一位错误,纠正即可。
若S3S2S1≠ 000 且全体偶校验成功 两位错误需要重新传
【计算机组成原理】海明校验码相关推荐
- 【考研·计算机组成原理】校验码 小结
本篇目录 前言 一.校验码 1.校验码 2.码距 3.检错与纠错 二.奇偶校验码 三.海明码 1.海明校验码的原理 2.校验位的计算方法 四.CRC码(循环冗余校验) 总结 前言 跟着王道的考研复习指 ...
- 第二章 数据的表示和运算 2.1.5 汉明(海明)校验码 [计算机组成原理笔记]
第二章 数据的表示和运算 2.1.5 汉明(海明)校验码 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 海明(Hamming) ...
- 计算机组成原理学习笔记:海明校验码
概述 海明校验码又可以称为汉明校验码, 这只是一个音译的问题, 作者是 Richard Hamming 海明校验码对于信息纠错这个领域的贡献十分巨大,Richard Hamming 获得了1968年的 ...
- 计算机底层:海明校验码。
计算机底层:海明校验码. 海明校验码是由奇偶校验码中的偶校验延申出来的: 计算机底层:奇偶校验码_srhqwe的博客-CSDN博客 了解海明校验码之前需要先了解奇偶校验码. 海明校验码 ...
- 【中级软考—软件设计师】1计算机组成与体系结构1.2校验码【***】:1.2.3海明校验码总结梳理
考点三:海明校验码[重点掌握] 可检错也可纠错 分组奇偶校验,通过分组交叉从而找出错误的位置 海明校验码位数的求取[掌握]:2(r次方)>=m + r + 1[公式也可以写成2(r次方) - 1 ...
- 白话——海明校验码及编码过程
学习组原了解到海明校验码,刚开始实在是看不懂,脑子一团浆糊,然后还做到了一道错题更是惨的一批,现在还算是有了一个比较清晰的了解.想着做一个总结过程,希望像我这样的小白能免幸遇难.本文适合对海明校验码不 ...
- 进制转换及如何求校验码(海明校验码及循环冗余校验CRC码)
文章目录 前言 一.进制转换 1.1 二进制转换为八进制数和十六进制数 1.2 任意进制数转换为十进制数 1.3 十进制转换为任意进制 二.校验码求取 2.1海明校验码 2.2循环冗余校验CRC码 总 ...
- 海明校验码--确定校验位
计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下 首先看下基本的概念 : 2^r≥k+r+1 其中r为校验位 ...
- BCD码、奇偶校验码、海明校验码
BCD码 十进制数用二进制编码的形式,通过专门的十进制数运算指令进行处理.计算机中有专门的逻辑线路在BCD码运算时使每4位二进制数按十进制进行处理. 每位十进制数的取值可以是0-9这十个数之一,因此, ...
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
常用校验码(奇偶校验码.海明校验码.CRC校验码) 一.奇偶校验码 二.海明校验码 三.CRC校验码 计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变 ...
最新文章
- mysql 返回最大值列名_多列求最大值列和列名
- python网络爬虫权威指南 豆瓣_福利分享:个人整理的Python书单,从基础到进阶...
- 【CEO赠书】《浪潮之巅》:计算机史上的人间词话
- 【模板小程序】求M~N范围内的质数个数
- 万能的Seq2Seq:基于Seq2Seq的阅读理解问答
- centos6.5 安装 kong 网关
- python对象的三个属性_Python 对象属性的访问
- jQuery 开始动画,停止动画
- boolean到底占几个字节?
- ANSYS_APDL——实例001-模态分析
- Deecamp夏令营面试及结营体验
- Android View事件传递机制
- 互联网社交出海:赤子城年内涨幅280%,“深水区”故事如何说好?
- 记公司项目中数字大屏适配4K大屏的问题
- 谷歌浏览器在新页面打开_如何在Google文档中更改页面方向
- Socket学习总结系列(一) -- IM Socket
- vue element-ui elementUi 邮箱自动补全 邮箱自动填充
- 队列--参考源码(转)
- QT4.8.6调用zlib库实现数据流的压缩与解压缩
- Python构图小实例
热门文章
- JDK1.8新特性(五): Collectors
- 自动化设备高压变频器维修11条注意事项
- 小程序源码:洗衣店v2.5.0微信小程序
- 【每周Java技术】2022.05.16 周一 ~ 2022.05.22 周日(Srping Boot | 二叉树 | Docker | 微服务/云原生)
- 百名高管立下“军令状”,这场会议释放强烈信号
- android多语言配置,Android国际化(多语言)实现,支持8.0
- C语言中fputc函数
- 深度学习(三十八)初识DL在自然语言序列标注中的应用-未完待续
- 基于Springboot+mysql手机商城(带后台管理系统)
- 我的未来在等你 --- 致我的大学时光(一)