计算机系统知识(一)—海明码

海明码校验

当计算机存储或移动数据时,可能会产生数据位错误。这时能够利用汉明码来检測并纠错,简单的说,汉明码是一个错误校验码码集。

了解海明码之前先了解一下异或:

异或的数学符号为“⊕”。计算机符号为“xor”。其运算法则为:

a⊕b = (?a ∧ b) ∨ (a ∧?b)

假设二进制下用1表示真,0表示假。则异或的运算法则为:

0⊕0=0,

1⊕0=1,

0⊕1=1。

1⊕1=0(同为0,异为1)。

 海明码的编码步骤

1. 依据信息位数,确定校验位数,2r -1>k+r。当中,k为信息位数,r为校验位。

求出满足不等式的最小r。即为校验位数。

计算校验位公式如表所看到的。



9


8


7


6


5


4


3


2


1


位数



I5


I4


I3


I2


I1


信息位



r3


r2


r1


r0


校验位

2.  求校验位。依据上面所说的计算公式求出校验位。

3.  求海明码。依据上面表格的填充。写出海明码。

我们以希塞视频中的样例来理解:

举例:若有效信息位为1101,求它的校验位

依据上面的步骤我们可知

1.  信息位为k=4位,那么2r -1≥k+r。求的r=3

2.  列表。

r位的校验位能够表示 2个数,和位数对齐后r0=1,r1=2,r2=4…等等。信息位即为我们上面的1101这4位信息。那么我们能够画出以下这张表


7


6


5


4


3


2


1


位数


I4(1)


I3(1)


I2(0)


I1(1)


信息位


r2


r1


r0


校验位

我们知道r0=20,r1=21,r2=22

而信息位与所相应的位数关系为3.中

I4:7=22 +21+20

I3: 6= 22 + 21

I2: 5= 22+20

I1:3 =21+20

r0就用具有出现20的信息位表示,因此

r0=I4⊕I2⊕I1=1⊕0⊕1=0;

r1=I4⊕I3⊕I1=1⊕1⊕1=1;

r2=I4⊕I3⊕I2=1⊕1⊕0=0;

注:异或的公式里面假设出现偶数的1。则结果为0,反之为1

4. 将得到的校验码输入上表中,得出


7


6


5


4


3


2


1


位数


1


1


0


1


信息位


0


1


0


校验位

5.综上海明码结果为:1100110

关于纠错下篇介绍...

时间: 2024-10-12 20:52:39

计算机系统知识(一)—海明码的相关文章

(1)计算机系统知识

1.计算机系统知识 1.1.1 硬件基本组成 电脑基本硬件系统由:运算器.控制器.存储器.输入.输出 五大设备组成 运算器.控制器集成在一起组成中央处理单元(CPU)用来完成算术.逻辑运算.控制 存储器:分内部存储(内存:容量小速度快)和外部存储(硬盘:容量大速度慢) 外设:输入设备和输出设备 1.1.2 中央处理单元 寄存器分为:专用寄存器(运算器和控制器)和通用寄存器 运算器: ①         算术逻辑单元ALU ②         累加寄存器 ③         数据缓冲寄存器④ 状态

计算机系统知识--CPU

经历了两个月的软考洗礼,23号考完了,真个人都松了一口气,不去关心考的好坏,经历了这段时间觉得过得还是很充实的.从看希赛网视频, 到专项复习,再看课本了解更详细的知识点,然后准备好了知识,经历20天的真题洗礼,一个字,不懂的还真多... 既然软考了,而且以后这种知识对以后的学习还有很大的帮助,就不能让他随风飘逝了...总结一下. 计算机系统分为运算器.控制器.存储器.输入.输出5大部件,cpu分为运算器.控制器.寄存器和内部总线: cpu控制数据经过输入设备(键盘.鼠标等)将数据输入计算机内部,

计算机系统知识总结

软考第一章讲了计算机系统知识,学习到了一些和硬件相关的知识,对计算机体系结构有了一个大概的了解. 1.计算机基本组成 让我认识了CPU的具体结构,大致的工作流程,了解了数据在计算机内部的表现形式.尤其是机器数,反码补码的创造,是灵活与智慧的表现.下面是思维导图: 2.计算机体系结构 根据不同的层次定了多个系统,本节介绍了指令系统,存储系统,输入输出技术以及总线结构.导图如下: 3.安全性.可靠性与系统性能评测 导图如下: 这么多的内容,课本只用了五十页,好多的知识不够详细,以至于有些知识难以理解

计算机系统知识--输入输出技术

首先了解一个概念输入输出技术是处理内存和外设设备间数据联系的,并且交互过程受cpu控制. 程序控制输入输出 程序的输入输出方法主要有四种: 无条件传送 计算机系统存在一些简单外部设备,当他们开始工作时,随时准备好接收到cpu的数据,或随时准备好数据,被cpu调用.这就是一种无条件传送. 查询方式 无条件传送方式使用也是有条件的,就是外设总是准备好数据,或者运行很慢的外设.对于那些不总是准备好的外设,就是慢速或中速设备就使用查询的方式,这种方式要求外设提供设备状态. 通过询问外设的状态,就能实现输

洛谷 P1461海明码 Hamming Codes 枚举 搜索

洛谷 P1461海明码 Hamming Codes枚举 搜索 1 #include <bits/stdc++.h> 2 using namespace std ; 3 4 const int N = 11 ; 5 int mx,B,n,D ; 6 int bin[N] ; 7 struct base{ 8 bool f[ N ] ; 9 inline void clear() { 10 for(int i=1;i<N;i++) f[ i ] = 0 ; 11 } 12 inline vo

软件设计师考试计算机系统知识——CPU

第一章: 计算机系统知识 1.1.1计算机系统硬件的基本组成 运算器.控制器.存储器.输入设备.输出设备 1.1.2 中央处理器 ①CPU的功能: a.程序控制:CPU通过执行指令来控制程序执行的顺序: b.操作控制:CPU产生每条指令的操作信号并将操作信号送往不同的部件: c.时间控制:CPU对各种操作进行时间上的控制: d.数据处理:CPU通过对数据进行算术运算以及逻辑运算方式进行加工处理: ②CPU组成:运算器.控制器.寄存器组.内部总线 (1)运算器--数据加工处理部件,用于完成计算机的

洛谷 P1461 海明码 Hamming Codes

P1461 海明码 Hamming Codes 题目描述 给出 N,B 和 D,要求找出 N 个由0或1组成的编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位的“Hamming距离”(1 <= D <= 7).“Hamming距离”是指对于两个编码,他们二进制表示法中的不同二进制位的数目.看下面的两个编码 0x554 和 0x234(0x554和0x234分别表示两个十六进制数): 0x554 = 010

计算机系统知识

计算机系统知识一.计算机组成(运算器.控制器.存储器.原码.反码. 补码)? 运算器算术逻辑单元(ALU).累加器.状态寄存器.通用寄存器组等组成.算术逻辑运算单元(ALU)的基本功能为加.减.乘.除四则运算,与.或.非.异或等逻辑操作,以及移位.求补等操作.计算机运行时,运算器的操作和操作种类由控制器决定.运算器处理的数据来自存储器:处理后的结果数据通常送回存储器,或暂时寄存在运算器中.与Control Unit共同组成了CPU的核心部分.? 控制器是整个CPU的指挥控制中心,由指令寄存器IR

奇偶效验码和海明码

奇偶效验码 奇偶校验码是奇校验码和偶校验码的统称.它们都是通过在要校验的编码上加一位校验位组成. 奇校验码:加上校验位后,编码中 1 的个数为奇数个. 偶校验码:加上校验位后,编码中 1 的个数为偶数个. 水平奇偶效验码 例: 原编码 奇校验 偶校验 0000 0000 1 0000 0 0010 0010 0 0010 1 1100 1100 1 1100 0 1010 1010 1 1010 0       垂直奇偶效验码 例: 有32位数据 10100101 00110110 110011