麻烦帮忙求一下这题的海明码,谢谢,计算机组成原理

麻烦帮忙求一下这题的海明码,谢谢,计算机组成原理写一下过程谢谢

第1个回答  2018-07-07
1. 2.C 3.B 4.D 5.D 6.A 7.A.B.C.D.E 8.
第2个回答  2018-08-04
1、确认海明码的位数:
在这里,n是有效信息位数,k是校验位数,应满足n+k+<=2^k ,把k、n带入发现是有效的。
设信息位为D4D3D2D1(1010),共4位,校验位有3位,设为P3P2P1。0
对应的海明码为:H7H6H5H4H3H2H1,共7位(这只是说明有7个码组成,并没有确定具体每一位的值和属性)
2、确定校验位的位置:
规定校验位Pi(1<=i<=k)在海明位号为2^(i-1)的位置,其余为信息位。因此P1在海明位号为1的位置,即H1;
P2在编号为2的位置,即H2;P3在编号为4的位置,即H4;
海明码的分布为:D4D3D2P3D1P2P1(海明位号就是这个序列的下标数字)
3、分组,形成校验关系:
每个数据位用多个校验位进行校验,满足条件是:数据位的海明位号等于校验它的校验位的海明位号之和。
只需要看数据位就行了。比如:D1放在H3的位置上,由P2P1进行校验,因为P2P1的海明位号为2+1=3;
D2放在了H5上,就要由和是5的校验位来校验,找一下发现是P3P1,因为他们的海明位号和为4+1=5;
D3放在了H6上,找和为6的校验位,是P2P3,海明位号分别为4和2。D4放在了H7,找和为7的校验位,
发现是P1P2P3,同理因为4+2+1=7。
4、校验位取值:
校验位Pi(1<=i<=k)的值为 被Pi校验过的数据位的异或值。
P1 = D1⊕D2⊕D4 = 0⊕1⊕1 = 0;
P2 = D1⊕D3⊕D4 = 0⊕0⊕1 = 1;
P3 = D2⊕D3⊕D4 = 1⊕0⊕1 = 0;
所以,1010对应的海明码为101(0)0(10)。小括号内为校验位。
5、找出错误位置。
S1= P1⊕D1⊕D2⊕D4 = 0;
S2,S3类似……,若S3S2S1 = 000那么说明没出错;否则S3S2S1值为几就是那一位出错,例如S3S2S1 = 001,则说明第一位出错,直接将该出错位取反就达到了纠错的目的。本回答被网友采纳
相似回答