当前位置 博文首页 > Scissors_初夏的博客:初夏小谈:计算机存储器的校验之汉明码校

    Scissors_初夏的博客:初夏小谈:计算机存储器的校验之汉明码校

    作者:[db:作者] 时间:2021-08-28 13:13

    一、 在计算机的各种操作时,可能会导致数据在存储过程中出现差错。所以对数据进行检错以及纠错就显得格外重要。

    ? ? 1.对数据进行校验一般有三种方式:①:奇偶校验

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ②:汉明码校验

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ③:CRC校验

    ?二、今天来说说汉明码校验是如何校验的?

    ? ? ?1..汉明码校验的特点:它只有一位纠错能力,意思就是对于数据发生变化的位数只能是一位。

    ? ? ?2.在了解汉明码校验之前先来了解一下这几个概念:

    ? ? ? ? ①:检错:就是只知道出错了,但不知道哪里错了,也就是不知道出错的位置(奇偶校验)

    ? ? ? ? ②:纠错:知道数据有错误并且知道哪里错了

    ? ? ? ? ③:最小码距:在一组编码中,任意两组代码之间的最少二进制位数的差异,也就是两组二进制数最少有几位不同。

    ? 三、汉明码如何使用

    ? ? ? 1.汉明码的校验过程:

    ? ? ? ?如图由A向B传输数据

    ? ? ??

    ? ? ? ?①:再向B进行传输时会增加3位校验位C1,C2,C3

    ? ? ? ?②:这三位校验位计算公式:? ? ? ??

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2^N>=4+N+1

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? N:代表至少所需要的校验位

    ? ? ? ?③:接下来计算三位校验位的值分别是多少

    ? ? ? ? ? ?? ? ??

    ④:对校验位和数据一起进行传输:? ? ⑤:将这组数据进行数据传输,在B接收时会进行校验,如何校验?

    ? ? ? ? 先计算出:P1,P2,P3

    ? ? ⑥:接下来进行查表如下:

    ??

    便可以查到是哪一位出错了,在上校验中P3 P2 P1为 101说明第五位出错。便可以查到是d2出错。

    之后对d2进行纠错

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?珍&源码

    cs