我是靠谱客的博主 满意魔镜,最近开发中收集的这篇文章主要介绍计算机组成D4,计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 x...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 x...0

计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 xor D6 为什么这样求

海明校验码

海明码也是利用奇偶性来校验数据的.它是一种多重奇偶校验检错系统,它通过在数据位之间插入k个校验位,来扩大码距,从而实现检错和纠错.

设原来数据有n位,要加入k位校验码.怎么确定k的大小呢?k个校验位可以有pow(2,k) (代表2的k次方) 个编码,其中有一个代表是否出错.剩下pow(2,k)-1个编码则用来表示到底是哪一位出错.因为n个数据位和k个校验位都可能出错,所以k满足pow(2,k)-1 >= n+k.

设 k个校验码为 P1,P2...Pk,n个数据位为D0,D1...Dn 产生的海明码为 H1,H2...H(n+k) .如有8个数据位,根据pow(2,k)-1 >= n+k可以知道k最小是4.那么得到的海明码是:

H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1

D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1

然后怎么知道Pi校验哪个位呢.自己可以列个校验关系表

海明码 下标 校验位组

H1(P1) 1 P1

H2(P2) 2 P2

H3(D0) 1+2 P1,P2

H4(P3) 4 P3

H5(D1) 1+4 P1,P2

H6(D2) 2+4 P2,P3

H7(D3) 1+2+4 P1,P2,P3

H8(P4) 8 P4

H9(D4) 1+8 P1,P4

H10(D5) 2+8 P2,P4

H11(D6) 1+2+8 P1,P2,P4

H12(D7) 4+8 P3,P4

从表中可以看出

P1校验 P1,D0,D1,D3,D4,D6

P2校验 P2,D0,D1,D2,D3,D5,D6

P3校验 P3,D2,D3,D7

P4校验 P4,D4,D5,D6,D7

其实上表很有规律很容易记,要知道海明码Hi由哪些校验组校验,可以把i化成 二进制数 数中哪些位k是1,就有哪些Pk校验

如H7 7=0111 所以由P1,P2,P3 H11 11=1011 所以由P1,P2,P4 H3 3=0011 所以由P1,P2

那看看Pi的值怎么确定,如果使用偶校验,则

P1=D0 xor D1 xor D3 xor D4 xor D6

P2=D0 xor D1 xor D2 xor D3 xor D5 xor D6

P3=D1 xor D2 xor D3 xor D7

P4=D4 xor D5 xor D6 xor D7

最后

以上就是满意魔镜为你收集整理的计算机组成D4,计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 x...的全部内容,希望文章能够帮你解决计算机组成D4,计算机组成 海明码问题,P1=D0 xor D1 xor D3 xor D4 x...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部