假设有一个12位的海明码(采用偶校验编码,且最多只有1位发生错误),其十六进制的值为ACFH,请问原来的值是( )。

admin2019-12-10  34

问题 假设有一个12位的海明码(采用偶校验编码,且最多只有1位发生错误),其十六进制的值为ACFH,请问原来的值是(    )。

选项 A、EFH
B、AFH
C、4FH
D、BFH

答案B

解析 先将编码后的数据换成二进制形式。十六进制ACFH转换为二进制为1010 1100 1111。其次,列出数据与位置的对应表,如表5-3所示。

    其中,第1、2、4、8位为校验位,其余位为数据位。
    不妨设出错位为e1、e2、e3、e4,怎么确定e1、e2、e3、e4与数据位的关系呢?M1下标中的1可以表示成0001,这里的0001分别对应e4、e3、e2、e1(倒过来看),由于e1的值为1,所以M1只和e1有关。M3下标中的3可以表示成0011,所以M3和e1、e2有关;M7下标中的7可以表示成0111,所以M7和e1、e2、e3有关。其他以此类推,只需要将这些有关的用异或符号⊕连接起来即可,最后可得如下公式:
    e1=M1⊕M3⊕M5⊕M7⊕M9⊕M11=1⊕1⊕1⊕1⊕1⊕1=1
    e2=M2⊕M3⊕M6⊕M7⊕M10⊕M11=0⊕1⊕1⊕0⊕1⊕1=0
    e3=M4⊕M5⊕M6⊕M7⊕M12=0⊕1⊕1⊕0⊕1=1
    e4=M8⊕M9⊕M10⊕M11⊕M12=0⊕1⊕1⊕1⊕1=0
    按照e4、e3、e2、e1的排列方式得到的二进制序列为0101,恰好是二进制5,只需要把第五位取反即可,最后的正确信息为1010 0100 1111,然后删除校验位,即第1、2、4、8位,最后得到原始的数据位为1010 1111,转换成十六进制为AFH。
转载请注明原文地址:https://jikaoti.com/ti/rTDjFFFM
0

相关试题推荐
最新回复(0)