(转)海明校验码--确定校验位

转自 :http://blog.csdn.net/yudandan10/article/details/11878421

计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下

首先看下基本的概念  :

2^r≥k+r+1

其中r为校验位 ,k为信息位  信息位是已知的,那么如何确定校验位呢,用一个例子来说明

例如:二进制码1011  求它的海明编码 步骤如下:

1、首先确定信息位,也就是1011了,那么随之K的长度也就知道了是4位

2、确定校验码是几位  根据上述公式我们去试最接近而且满足条件的值,1011的校验位是3,也就是r=3,这样刚好满足了条件

3、确定了校验位的位数之后就是来确定校验位的值以及分配校验位了

首先来看分配校验位:  一般来说校验位都是放在2^n的位置处,也就是1、2、4、8....

其次就是确定分组(也就是确定校验位的值)

通过初步的解题我们知道了校验位+信息位一共是7位,那么我们首先来画一个表,分别把这些数据填进去

注释:  我分别把七个位置用1~7来表示了  在填写信息为的时候也要把高位的数据填到高的位置 ,例如1011  就要类似图中的填法

确定校验位的分组原则:

1.每个位置的校验位确定: 要想校验第几位 (i)  那么i就等于校验位所在位置的加和    举个简单的例子,加入我要教研第3位,那么3=1+2  也就是3 由第一个和第二个校验位来校验,照这样的算法,以此类推,我们就可以知道每个位置都需要哪个校验位来校验了

下面是1011的校验位分配表

按上述方法分配好后,我们已经明确的知道了每个位置都需要利用哪些位置来校验,下面也是关键的一步了

我们要把这些数据汇总起来,也就是每个校验位都校验了哪些位置,就分别把这些位置的值按亦或计算(也就是相同的值就为0  ,不相同时就取1)  这样就得到了每个校验位的值了

下面我们来看看,每个校验位都分别校验了哪些位置 :

由此表可以看出对于校验位所要校验的位置,已经确定了,余下的就是计算检验位的值了,(利用亦或运算)

可得到r1  r2  r3 的值分别为 1,0,0  (如果此处你不会亦或运算,那么建议百度查一查,练习一个简单的例子就会和明白了)

到此位置,我们就求出了校验位的值,同时海明码也就出来了

那么对于海明码的验证纠错等知识我就不在这里介绍了,以上就是我对此部分知识的理解,欢迎交流学习

时间: 2024-08-07 04:13:39

(转)海明校验码--确定校验位的相关文章

海明校验码

原博地址:http://blog.csdn.net/yudandan10/article/details/11878421  计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下 首先看下基本的概念  : 2^r≥k+r+1 其中r为校验位 ,k为信息位  信息位是已知的,那么如何确定校验位呢,用一个例子来说明 例如:二进制码1011  求它的海明编码 步骤如下: 1.首先确定信息位,也就是1011了,那么随之K

计组_海明校验码

原理: 在数据中加入几个校验码,并把数据的每一个二进制位分配在几个奇偶校验组中. 设:校验位的个数为r,能表示2^r个信息,1个表示“没错误”, 2^r -1个指出错误发生在哪一位. k= 2^r –1-r个信息可用于纠正数据位. 2^r≥k+r+1 若要检测并纠正一位错,同时发现两位错,r,k应满足下列关系: 2^r-1≥k+r      (见表3.8) 校验位和数据位是如何排列的 校验位排列在  2^(i–1) (i =0,1,2,…)的位置上 例:有一个编码 为D4D3D2D1,由此生成一

海明校验码(靠谱的解释)

https://www.cnblogs.com/zsswpb/p/5771636.html [定义] 海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法.海明码的构成方法是在数据位之间的确定位置插入k个校验位,通过扩大吗距来实现检错和纠错.对于数据位m的数据,加入k位的校验码,它应满足: 2^k>m+k+1 [例子] 设数据为01101001,试采用校验位求其偶校验方式的海明码. (1)确定数据位D和校验位P在海明码中的位置: 由海明码编码规则可知: pi在海明码的第2i-1

计算机组成原理的【海明校验码】(软考)

具体的原理可以直接百度不多说,直接写怎么解决 一.前提: 数据位中仅有一位出错,这是海明码产生的依据 二.异或运算 相同为0,不同为1,异或的符号为"xor"或者"⊕",例如:1 xor 1 = 0,1 xor 0 = 1 三.基本公式 2^r≥k+r+1 其中r为校验位 ,k为信息位  信息位是已知的 四.具体例子 1. 求(1101)2的海明码 (1) 首先求出校验的位数和位置 位数:根据公式计算,校验位数最小为3 位置:2^n(位置一般为2的n次方,1.2.4

常用校验码(奇偶校验,海明校验,CRC)学习总结

常用校验码(奇偶校验,海明校验,CRC)学习总结 一.为什么要有校验码? 因为在数据存取和传送的过程中,由于元器件或者噪音的干扰等原因会出现错误,这个时候我们就需要采取相应的措施,发现并纠正错误,对于错误的检测和校正,大多采取"冗余校验"的思想,即除原数据外,额外增加若干位编码,这些新增的代码称为校验位. 二.数据是如何校验的? 输入的数据m经过f得到p校验位. 数据m和校验位一起通过存储器或传输线路,分别得到m'和p',这两者可能和m,f相同,也可能由于传输储存发生问题而不同. 由数

校验码

校验码在内存和通信的检错容错中应用广泛. 常用的校验码有奇偶校验码(Parity).海明校验码和循环冗余校验码(CRC) 奇数偶数用异或操作即可计数实现. 奇偶校验码是对每个byte (8 bits) 加一位校验码,此时根据所采用的的是奇校验还是偶校验来确定校验码的值,使之这个序列中的1的个数为奇数/偶数. 优点:高效,快: 缺点:能反映错误但是无法定位错误,只能说错了就重传 海明码则是多重奇偶校验,它的做法是假设N位的数据,我们采用多位校验码,假设K位,加入了这K位校验码之后,我们能够用校验码

海明校验

转自:https://www.cnblogs.com/zsswpb/p/5771636.html 做了调整与补充 [定义] 海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法.海明码的构成方法是在数据位之间的确定位置插入k个校验位,通过扩大吗距来实现检错和纠错. 对于数据位m的数据,加入k位的校验码,它应满足香农第二定理:n=m+k ≤ 2k-1 说明:这里的m是指我们待编有效信息的位数,例如110101就是m=6,然后代入m,6+k ≤2k-1得到m=6,k≥4(取最小值),

【计算机组成原理】校验码

奇偶校验码 组成奇偶校验码的基本方法:在n位有效信息位上增加一个二进制校验位,构成一个n+1位奇偶校验码 奇校验:使n+1位的奇偶校验码中1的个数为奇数 偶校验:使n+1位的奇偶校验码中1的个数为偶数 只能发现无法修改 海明校验码: 多重校验  分成多组 每一组做奇偶校验 可以发现并纠错 原文地址:https://www.cnblogs.com/dream-to-pku/p/11615995.html

数据校验码概述

[TOC] 奇偶校验码 最简单实用的一种校验数据的方式.在原始数据的后面加一个校验位来实现数据的校对. 若原始数据为:\(D=(D_1,D_2...D_n)?\) 偶校验:$D_偶 = D_1 \bigoplus D_2 \bigoplus...D_n $ 奇校验:\(D_奇 = \overline{ D_1 \bigoplus D_2 \bigoplus...D_n }\) 验算时: \(F = \overline{D_1 \bigoplus D_2 \bigoplus...D_n \bigo