zoukankan      html  css  js  c++  java
  • 海明校验码——软考(二)

         我们在寄快递时,会填写一个单子,在填写完成之后自己要进行一下核对,再然后是快递员也要进行核对,这就属于一种校验,这种方式时比较简单的。而计算机系统在运行时,各个部件之间要进行数据交换,为了保证数据在传输过程中的污物,通常使用校验码的方法来检测传送的数据是否出错,常用的的方法奇偶叫研发、海明码和循环冗余校验码。现在主要讨论海明校验码

        【定义】

         海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的确定位置插入k个校验位,通过扩大吗距来实现检错和纠错。对于数据位m的数据,加入k位的校验码,它应满足:
     m+k+1<2^k

       【例子】

         设数据为01101001,试采用校验位求其偶校验方式的海明码。
         (1)确定数据位D和校验位P在海明码中的位置:
        由海明码编码规则可知:
                 pi在海明码的第2i-1
                 比如P4=2^(4-1)=8,所以位于第8位
                             

        (2)确定校验关系
             这个难点在于如何确定校验位组。
             举一个例子来说:H3=D0,海明码下标为3,我们必须用已知的校验位(P1,P2,P3,P4)来表示3,这里3就可以等于1+2。

              
           
           比如P1 的校验位为表格中红色标记出来所对应的海明码的位数
           故:P1校验:P1,D0,D1,D3,D4,D6
                   P1=D0⊕D1⊕D3⊕D4⊕D6=1⊕0⊕1⊕0⊕1=1
                   ⊕符号:代表异或,相同则为0,不同则为1。只要仔细一定可以计算正确。
                   P2、P3、P4的海明码计算也是如此,关键是要找出正确的校验位组,所以海明校验码:011001001101

          【总结】

           软考的学习中这只是一个很小的一部分,刚开始看确实很复杂,自己都不知道海明校验码究竟如何生成校验码,但经过研究和小组讨论,弄清楚了如何使用校验码,同时也写出来,希望能够让跟我一样不懂的人能够有一个了解,同时也要相信自己,只要经过研究还是有收获的。
  • 相关阅读:
    Spring EL Operators example
    Spring EL method invocation example
    Spring EL hello world example
    Spring @PostConstruct and @PreDestroy example
    Spring init-method and destroy-method example
    Define custom @Required-style annotation in Spring
    Spring dependency checking with @Required Annotation
    Spring properties dependency checking
    UESTC 883 方老师与两个串 --二分搜索+DP
    UESTC 882 冬马党 --状压DP
  • 原文地址:https://www.cnblogs.com/zsswpb/p/5771636.html
Copyright © 2011-2022 走看看