海明码最通俗易懂的讲解
海明码的计算(精)

海明码的计算(精)海明码的计算:码距:是不同码字的海明距离的最小值。
(1)可查出多少位错误:可以发现“≤码距-1”位的错误(2)可以纠正多少位错误:可以纠正“<码距/2”位的错误,因此如果要能纠正n位错误,则所需最小的码距是:2n+1。
计算:海明码是放置在2的幂次位上的即1,2,4,8,16,32,而对于信息位为m的原始数据,需加入k位的校验码,它满足m+k+1<.海明码的求法:一、有一种简单的方法,则是从第1位开始,遇到校验位留下空格。
如原始信息为101101100,并采用偶校验:1011011001 2 3 4 5 6 7 8 9 10 11 12 13二、然后概据以下公式填充校验位:1,2,4,8B1=B3⊕B5⊕B7⊕B9⊕B11⊕B13=1⊕0⊕1⊕0⊕1⊕0=1B2=B3⊕B6⊕B7⊕B10⊕B11=1⊕1⊕1⊕1⊕1=1B4=B5⊕B6⊕B7⊕B12⊕B13=0⊕1⊕1⊕0⊕0=0B8=B9⊕B10⊕B11⊕B12⊕B13=0⊕1⊕1⊕0⊕0=0三、最后将结果填入,得到结果:11100110011001 2 3 4 5 6 7 8 9 10 11 12 13海明码的纠错:如下给出一个加入了校验码的的信息,并说明有一位的错误,要找出错误位:11100110010001 2 3 4 5 6 7 8 9 10 11 12 13将B1,B2,B4,B8代入上式的公式中:B1=B1⊕B3⊕B5⊕B7⊕B9⊕B11⊕B13=1⊕1⊕0⊕1⊕0⊕0⊕0=1 B2=B2⊕B3⊕B6⊕B7⊕B10⊕B11=1⊕1⊕1⊕1⊕1⊕0=1B4=B4⊕B5⊕B6⊕B7⊕B12⊕B13=0⊕0⊕1⊕1⊕0⊕0=0B8=B8⊕B9⊕B10⊕B11⊕B12⊕B13=0⊕0⊕1⊕0⊕0⊕0=1然后从高位往下写,B8+B4+B2+B1=1011=11(十进制)即11位出错。
海明码纠错原理

海明码纠错原理海明码(Hamming Code)是一种用于检错和纠错的编码方式,由理查德·海明在1950年提出。
它可以发现并纠正单一位错误,也可以检测并纠正双位错误。
海明码的纠错原理是通过增加校验位来实现的,下面我们来详细了解一下海明码的纠错原理。
首先,海明码是一种线性分组码,它的编码方式是将数据位和校验位按照一定规则排列组合而成。
在传输数据时,发送端会对数据进行编码,添加校验位后发送出去;接收端收到数据后,会对接收到的数据进行解码,并根据校验位进行错误的检测和纠正。
其次,海明码的纠错原理是基于奇偶校验的。
在海明码中,校验位的位置是通过2的幂次方来确定的,例如第1、2、4、8、16位是校验位,其余位是数据位。
对于校验位而言,每一个校验位都负责一定范围内的数据位的奇偶校验。
当接收端接收到数据后,会对每个校验位进行奇偶校验,如果发现某个校验位的奇偶校验与接收到的数据不一致,就会根据校验位的位置确定出错的位置,并进行纠正。
最后,海明码的纠错原理可以通过一个简单的例子来说明。
假设发送端要发送一个4位的数据1010,按照海明码的规则,需要添加3个校验位。
经过编码后,发送的数据变为1010101。
在传输过程中,如果某一位发生了错误,例如1010101中的第4位发生了错误,接收端在接收到数据后,会对每个校验位进行奇偶校验,发现第2位和第4位的奇偶校验不一致,根据校验位的位置,可以确定出错的位置是第4位,然后进行纠正,将错误的位从0变为1。
最终,接收端得到的数据是1010,错误被成功纠正。
综上所述,海明码的纠错原理是通过增加校验位来实现的,通过对校验位的奇偶校验来检测错误,并根据校验位的位置进行错误的定位和纠正。
海明码在通信领域有着广泛的应用,能够有效地提高数据传输的可靠性和稳定性,是一种非常实用的纠错编码方式。
海明码,汉明码,hamming

海明码,汉明码,hamming code--计算法则最近最海明码很感兴趣,查了些资料,有⼀篇资料极好,所以贴出来,希望供有需求的⼈能有个参考。
1 海明码原理概述 海明码是R. Hamming提出的, ⼀种可以纠正⼀位错的差错控制编码。
了解海明码之前, 先回顾⼀下简单的奇偶校验码的情况。
若信息位为K=n- 1位, 表⽰为a1~an- 1, 加上⼀位偶校验位(冗余位)a0, 构成⼀个n位的码字a0~an- 1, 在接收端校验时, 可按关系式: s=a0+a1+a2+…an- 1来计算, 若S=0, 则⽆错, 若S=1, 则有错。
上式可称为监督关系式, S称为校正因⼦。
在奇偶校验情况下, 只有⼀个监督关系式和⼀个校正因⼦, 其取值只有两种(0或1),分别代表了⽆错和有错的情况, ⽽不能指出差错所在的位置。
不难想象, 若增加冗余位, 也相应地增加监督关系式和校正因⼦, 就能区分更多的情况。
如, 若有两个校正因⼦, 则其取值就有4种可能: 00、01、10或11, 就能区分4种不同情况。
若其中⼀种表⽰⽆错, 另外三种不但可以⽤来指出有错, 还可以⽤来区分错误的情况, 如指出是哪⼀位错等。
⼀般⽽⾔, 信息位为K位, 增加r位冗余位, 构成n=k+ r位码字。
若希望⽤r个监督关系式产⽣的r个校正因⼦来区分⽆错和在码字中的n个不同位置的⼀位错, 则表⽰:或。
2 构造海明码的冗余位和监督关系式的⽅法 按上述设计思路, 为了叙述清楚, 下⾯以信息位K=7来讨论海明码的冗余位和监督关系式的具体构造过程和⽅法。
因为且k=7, 所以≥4, 即⾄少需要4位冗余位(对应产⽣4个校正因⼦和4个监督关系式), 形成24=16种不同取值, ⽤其中11种分别表⽰⽆错和a0~a10中⼀位错的情况。
构造表如表1: 冗余码如下: a0=a8+a9+a10 (1) a1=a5+a6+a7 (2) a2=a4+a6+a7+a9 (3) a3=a4+a5+a7+a8+a10 (4) 监督关系式如下: s0=a0+a8+a9+a10 (5) s1=a1+a5+a6+a7 (6) s2=a2+a4+a6+a7+a9 (7) s3=a3+a4+a5+a7+a8 (8)3 构造校正因⼦和监督关系式时应遵循的原则 上表1中, 构造4个校正因⼦和4个监督关系式的过程中, 为了体现前⾯所述设计思想,应遵循如下原则: 图1中共有11列, 每⼀列应保证各不相同, 即s0 s1 s2 s3 的16种组合中, 取“0000”组合表⽰⽆错, 剩下15种中取其中11种⽤来表⽰a0~a10中某⼀位出错的情况, 所以,下表2有错, 因为a5 和a7 两列均为“0111”。
海明码的计算方法

海明码的计算方法海明码是一种具有纠错功能的校验码。
本文简单地介绍海明码的计算方法。
海明码的目的是能够纠正一位误码。
假设信息码共有 n 位,海明码共有 h 位,那么总共的码长为 n + h 位。
为能检测出 n + h 位编码中其中一位的错误,海明码必须能够表示至少 n + h + 1 种状态,其中 n + h 种表示 n + h 位编码中有一位错误,另外还需要一种来表示整个编码正确无误。
则海明码的长度需要满足下列关系:2 h>= n + h + 1于是根据这个式子我们可以得出以下的关系表:h 2 3 4 5 6 7 8n 1 2~4 5~11 12~26 27~57 58~120 121~247以 4 位信息位为例,由上表可以看出需要的海明码长度为 3。
设信息位为 x4x3x2x1,添加的 3 位海明码为 a3a2a1,信息码和海明码组合之后得到的码为 H7H6H5H4H3H2H1。
错误无H1H2H3H4H5H6H7C101010101C1= H1+ H3+ H5+ H7= 0C200110011C2= H2+ H3+ H6+ H7= 0C300001111C3= H4+ H5+ H6+ H7= 0如上表,在H1~H7中添加的 3 位海明码使得 C1~C3的值为零。
其中C1~C3为校验和。
这样当 Hn 传输出错时,有 (C3C2C1)2= n。
令 H1 = a1, H2= a2, H4= a3,则得出H 7H6H5H4H3H2H1= x4x3x2a3x1a2a1将上面的关系代入C1~C3的计算公式,得到C 1 = H1+ H3+ H5+ H7= a1+ x1+ x2+ x4= 0C 2 = H2+ H3+ H6+ H7= a2+ x1+ x3+ x4= 0C 3 = H4+ H5+ H6+ H7= a3+ x2+ x3+ x4= 0即a 1 + x1+ x2+ x4= 0a 2 + x1+ x3+ x4= 0a 3 + x2+ x3+ x4= 0即a 3 = x4+ x3+ x2a 2 = x4+ x3+ x1a 1 = x4+ x2+ x1。
海明码详解(精)

海明码详解这两天也在研究海明码的问题,把我的理解说给你吧,按照我说的可以顺利得到海明码步骤:一、确定校验码的位数k二、确定校验码的位置三、数据的位置四、求出校验位的值首先,海明码的作用是:在编码中如果有错误,可以表达出第几位出了错,二进制的数据只有0和1,修改起来很容易,求反即可,这需要加入几个校验位。
重要的知识点:海明码的组成,不是简单的在后面加上校验位,海明码≠数据位+检验位那检验位该怎么加呢?它是根据总的位置来加的,加在【2的几次幂】的位置上,这个位置不是我们通常的从右向左数位置,刚好相反,是从左右如下图:P是校验位, D是数据位:原始的数据是:101101 校验位是插到了 1 2 4 8这几个位置上的。
位置M1M2M3M4M5M6M7M8M9M10甲P1 P2 D1P3 D2D3D4P4 D5D6乙10 110 1步骤一、确定校验码的位数k公式:m+k+1≤2^k (m是数据位的位数,K是要加的校验位的位数数据长是4位,校验码就是3位4+k+1≤2^kK最小只能是3数据长是5,6,7,8,9,校验码就是4位5+k+1≤2^kK最小就只能取4101101 数据位是6位,那校验位应该是4位,那总位数是:6+4=10位步骤二、确定校验码的位置位置M1M2M3M4M5M6M7M8M9M10甲P1 P2 D1P3 D2D3D4P4 D5D6乙10 110 1(图1)注意:【位置是从左----------右编码】(网上好多都反了,都是从右往左的,这应该是错的)校验位就插在2的幂次方的位置上。
4个检验位就是插到,2的0次方=1,2的1次方=2,2的2次方=4,2的3次方=8的位置上。
始上(图1)步骤三、数据的位置数据位置就按顺序写入进去就OK了,不要写到校验位就是的了。
步骤四、求出校验位的值也就是求图1中:p1 p2 p3 p4 的值。
那这几个数该如何求值呢?这里就要引进一个线性码的概念了,就是这4位校验码和图1中的那些位置上的数有关系呢?这里有一个进制转换的问题要先解决:因为是4位校验码,所以我们可以s4 s3 s2 s1 这个数来表示这个4位校验码,也就是p4 p3 p2 p1M1号位是十进制的1 转成四位二进制数就是:0001 即M1 和s1有关系同样的道理M2 变成四位二进制数: 0010 0010----s4 s3 s2 s1 s2的位置上是1 ,所以M2和S2有关系。
海明码计算过程

海明码计算过程嘿,朋友们!今天咱就来讲讲海明码计算过程。
这海明码啊,就像是一个神秘的魔法盒子,等你打开它,就会发现里面藏着好多奇妙的东西呢!咱先来说说啥是海明码。
简单来说,它就是一种能帮我们检测和纠正数据传输过程中错误的好帮手。
你想想看,数据就像一群小士兵,在传输的道路上可能会遇到各种“妖魔鬼怪”,比如干扰啦、出错啦。
这时候海明码就像一位英勇的将军,站出来保护这些小士兵,让它们能准确无误地到达目的地。
那怎么计算海明码呢?别急,听我慢慢道来。
首先,我们得确定要保护的数据有多少位,这就好比要知道有多少小士兵需要保护。
然后呢,根据这个数量来确定需要多少位的海明码。
这就像给小士兵们配备合适数量的将军。
接下来,就开始计算啦!这过程就好像是给小士兵们排兵布阵。
我们要把数据位和海明码位按照一定的规则放好,就像是让小士兵们站在各自的位置上。
然后,根据一些巧妙的算法,给每个海明码位赋予特定的任务。
比如说,某个海明码位要负责检查某些数据位的奇偶性。
这就好像它是个小侦探,专门盯着那几个小士兵,看它们有没有出问题。
如果数据传输过程中真的出了错,这个小侦探就能迅速发现,然后发出警报!再比如说,另一个海明码位要同时关注好几个数据位,就像是个更厉害的大侦探,能从更宏观的角度发现问题。
计算海明码的过程可不简单哦,就像解一道复杂的谜题。
但你可别被它吓住,只要一步一步来,就一定能搞明白。
你想想,要是没有海明码,那我们的数据在传输过程中出错了可咋办?那不就乱套了嘛!所以说,学会计算海明码可是很重要的呢。
而且啊,这海明码的应用可广泛了呢。
不管是在网络通信中,还是在各种电子设备里,都能看到它的身影。
它就像一个默默无闻的守护者,一直在背后为我们的数据安全保驾护航。
哎呀,说了这么多,你是不是对海明码计算过程有点感觉了呢?别犹豫,赶紧自己去试试吧!相信你一定能掌握这个神奇的技能,让数据传输变得更加可靠。
加油哦!。
海明码详解

海明码详解①海明校验的基本思想将有效信息按某种规律分成若干组,每组安排一个校验位,做奇偶测试,就能提供多位检错信息,以指出最大可能是哪位出错,从而将其纠正。
实质上,海明校验是一种多重校验。
②海明校验的特点它不仅具有检测错误的能力,同时还具有给出错误所在准确位置的能力。
一.校验位的位数校验位的位数与有效信息的长度有关设:N--为校验码的位数 K--是有效信息位 r--校验位(分成r组作奇偶校验,能产生r位检错信息)海明码应满足 N=K+r≤2r-1 若r=3 则N=K+r≤7 所以K≤4二.分组原则`在海明码中,位号数(1、2、3、……、n)为2的权值的那些位,即:1(20)、2(21)、 4(22)、8(23)、…2r-1位,作为奇偶校验位并记作: P1、P2、P3 、P4、…Pr,余下各位则为有效信息位。
例如: N=11 K=7 r=4 相应海明码可示意为位号 1 2 3 4 5 6 7 8 9 10 11P占位P1 P2 × P3 × × × P4 × × ×其中×均为有效信息,海明码中的每一位分别被P1P2P3P4… Pr 中的一至若干位所校验,其规律是:第i位由校验位位号之和等于i的那些校验位所校验如:海明码的位号为3,它被P1P2(位号分别为1,2)所校验海明码的位号为5,它被P1P3(位号分别为 1,4)所校验归并起来: 形成了4个小组,每个小组一个校验位,校验位的取值,仍采用奇偶校验方式确定。
如表2·6 、表2·7所示:三.编码、查错、纠错原理以4位有效信息(b1、b2、b3、b4)和3位校验位(P1、P2、P3)为例: K=4 r=3 海明序号 1 2 3 4 5 6 7海明码 P1 P2 b1 P3 b2 b3 b4根据表2-8可以看到(1)每个小组只有一位校验位,第一组是P1、第二组是P2、第三组是P3。
计算机基础:海明码是什么?

计算机基础:海明码是什么?海明码:奇偶校验码的⼀种扩充。
只能检验和恢复⼀位。
例如:求1011 的海明码?答案:1010101其中:红⾊所在位数 1,2,4,8,... 为计算出的验证码,⿊⾊的信息为原信息码:1011。
计算⽅法:1.先计算需要⼏位海明码?1011 是四位 ,它有四种只错⼀位的情况,(0011,1111,1001,1010)再加上x位海明码的错⼀位情况。
再加上⼀种全部位都正确的情况。
所以海明码需要 x+4+1 中可能。
所以需要海明码x位可以表⽰出 x+4+1 中可能。
即: x+4+1 <=2**x (2**x 表⽰2的x⽅),计算得到3,海明码最少是3,当然4,5,6位都可以,就像⽤101 校验和0101 00101 000101 00000000101 都能校验⼀样,只是⽐较浪费。
所以计算出了海明码的位数为3。
(其实也就是往原编码内填充1,2,4,8,16,这些地⽅,填完为⽌。
)2. 开始计算。
1011 中间插⼊三位验证码位数7654321信息101x1x x在第7位:7=2**2+2**1+2**0=4+2+16 对应位置为0,不算在内。
5=2**2 +2**0 = 4 +13=2**1+2**0 =2+1这样得到(2**0) 出现三次,所以在最低位为1 ,(出现偶数次就是0,奇数次就是1,)(原计算⽅法是⽤异或计算 1 xor 1 =0 , 1xor 0 =1 , 0 xor 0=0 ,这⾥结果都⼀样)(2**1)出现两次,所以第⼆位是0,(2**2)出现两次,所以第三位是0,所以就得到位数7654321信息10101013.验证和举例我们传输这个得到的海明码,和⼀个错误的海明码:正确的验证 1010101 :1.得到海明码(1,2,4 位,如果更长的话就是8,16,32。
位)001。
2.信息码为剩下的 1011,同步骤⼆:计算得到001,3.和上⾯的到的海明码001 异或(001 xor 001 ) =000,正确错误的验证 1110101 :1.得到海明码 001。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
M1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M10
甲 P1
P2
P3
P4
③ 确定数据的位置 这个很简单,除了校验码的位置其余的就是数据的位置,填充进去就可以了,于是可以
把数据信息先填进去,见“乙”行,下面就是最关键的部分,求出校验位的值啦!!!
M1 甲 P1
乙
M2 M3
P2
D1
1
M4 M5 M6 M7
P3
D2
D3
D4
0
1
1
M 8 M 9 M10
P4
D5
D6
0
1
④ 求出校位的值 这个公式不是难,99%左右的考生都能看懂海明码的求解过程,但是真正能够过目不忘
的相信就是极少数了,很多考生在论坛抱怨躺在床上眼睛一闭,一睁,就忘记了一半。眼睛
再一闭,一睁,基本上就等于没有看了。与其这样,倒不如考前几天突击一下。其实完全没
e1 M1 M 3 M 5 M 7 M 9 = 0 1 1 1 0 = 1 e2 M2 M 3 M 6 M 7 M10 =0 1 1 1 1 = 0 e3 M4 M 5 M 6 M 7 =0 1 1 1 = 1 e4 M8 M 9 M10 = 1 0 1 = 0 按照 e4、e3、e2、e1的排序方式得到的二进制序列为:0101,恰好对应十进制 5,是不
M1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M10
甲 P1
P2
D1
P3
D2
D3
D4
P4
D5
D6
乙0
0
1
0
0
1
1
1
0
1
即最后的海明码为:0010011101; 但是考研知识点还没有完,知道了怎么编写海明码,当然需要知道怎么校验,如下: 现在假设第五位出错了,也就是第五位在传输的过程中被改为”1“了。即得到的数据 为 0010111101。现在要找出错误的位置(假设现在不知道出错的位置)。 继续使用:
态来表示数据正确的情况,所以 2r 1 k r 才能检查一位错误,即 2r k r 1。例如, 信息数据有 4 位,由 2r k r 1得 r>=3,也就是至少需要 3 位监督数据才能发现并改正 1
位错误。比如:给 8 个学员进行编号,可以用三位数来编码:学号为 000 、001 ……、111; 也可以用五位数来编号:学号为 00000 、00001 、00010 、……、00111,但是没有必要用 五位呀,只要能满足编码的要求就可以了,所以我们只需要求出满足条件的最小的 k 值即可。
公式:
e1 M1 M 3 M 5 M 7 M 9 e2 M2 M 3 M 6 M 7 M10 e3 M4 M 5 M 6 M 7 e4 M8 M 9 M10
然后将第③步求出那张表中的数据对应过来,即
e1 P1 D1 D2 D4 D5 e2 P2 D1 D3 D4 D6 e3 P4 D2 D3 D4 e4 P8 D5 D6 如果海明码没有错误信息, e1、e2、e3、e4 都为 0,等式右边的值也得为 0,由于是异 或,所以 Pi (i 取 1,2,3…)的值跟后边的式子必须一样才能使整个式子的值为零,故: P1 D1 D2 D4 D5 P2 D1 D3 D4 D6 P3 D2 D3 D4 P4 D5 D6
是找到了出错的位置?那赶快把第五位取反吧。
让我们再来总结一下吧:
编写海明码的过程:
① 确定校验位的位数
② 把数值为按序写出来,M1,..... M N ,校验码 Pi(i 取 1,2,3,4)在编码中的位置为 2i1 ,
将校验码的位置写出来,然后按序写出数据位
③ 求出出错位 e1,..... em 与 M1,..... M N 的对应关系,然后就可以写出 Pi 与数据位的对应 关系,进而求出 Pi
海明码求解具体步骤: ① 确定校验码的位数 k ② 确定校验码的位置 ③ 确定数据的位置 ④ 求出校验位的值 下面开始实战练习。假设我们要推导 D= 101101 这串二进制的海明码,按照步骤一步步
来: ① 确定校验码的位数 k
数据的位数 k=6,按照上面说的公式来计算满足条件 r 的最小值,如下公式:
海明码(又称汉明码):海明码是在信息字段中插若干位数据,用于监督码字里的哪一位数 据发生了变化,具有一位纠错能力。假设信息位有 k 位,整个码字的长度就是 k+r;每一位
的数据只有两种状态,不是 1 就是 0,有 r 位数据就应该能表示出 2r 种状态,如果每一种状
态代表一个码元发生了错误,有 k+r 位码元,就要有 k+r 种状态来表示,另外还要有一种状
2r 1 k r 即: 2r 7 r
解此不等式得:满足不等式的最小 r=4,也就是 D=101101 的海明码应该有 6+4=10 位, 其中原数据 6 位,校验码 4 位。 ② 确定校验码的位置
不妨设设这 4 为校验码分别为 P1 、P2 、P3 、P4 ;数据从左到右为 D1 、D2 、……、D6 。 编码后的数据共有 6+4=10 位,设为 M1 、 M 2 、…… M 10 。
④ 最后将 Pi 填入数据位,海明码就形成了
校验海码的过程:
① 直接上来写出出错位 e1,..... em 与 M1,..... M N 的对应关系,计算出 e1,..... em 的值 ② 求出二进制序列 em ,..... e1 对应十进制的值,则此十进制数就是出错的位数,取反即
可得到正确的编码。
补充两个概念:
(1)海明码如果要检测 d 位错误,需要一个海明距为 d+1 的编码方案;如果要纠出 d 位错误,需要一个海明距为 2d+1 的编码方案,记住即可;
(2)海明码的纠错能力恒小于等于检错能力。 以上为海明码全部考研知识点。
有必要死记硬背,该公式是有规律可循的,基本没有任何一本教材讲过,笔者也是无意中在
一篇论文中看见,所以与大家分享。
假设出错位为 e1、e2、e3、e4 ,现在我们需要做的就是将 M1 、M 2 、…… M 10 和 e1、e2 、 e3、e4 的关系对应出来,只要这个关系出来了,所有的问题都解决了。演示几个,剩下 的考生自己推导(看了肯定会)。 M1 下标中的 1 可以表示成 0001,这里的 0001 分别对应 e4、e3、e2、e1(倒过来看),由于 e1 的值为 1,所以 M1 只和 e1 有关。 M 3 下标中的 3 可以 表示成 0011,所以 M 3 和 e1、e2 有关;M 7 下标中的 7 可以表示成 0111,所以 M 7 和 e1、e2 、 e3 有关;其他以此类推,只需要将这些有关的用异或符号 连接起来即可,最后可得如下
下面只需要将值代入计算即可,
P1 D1 D2 D4 D5 = 1 0 1 0 = 0 P2 D1 D3 D4 D6 = 1 1 1 1 = 0 P3 D2 D3 D4 = 0 1 1 = 0 P4 D5 D6 = 0 1 = 1 大功告成,把 Pi 的值填写到第③步求出的那张表中,看“丙”行,就可以得到海明码。