zoukankan      html  css  js  c++  java
  • 奇偶校验码浅谈

    1.什么是奇偶校验码

    奇偶校验码也是一种校验码,它用来检测数据传输过程中是否发生错误,是众多校验码中最为简单的一种。

    顾名思义,它有两种校验方法:奇校验和偶校验

    奇校验:原始码流+校验位 总共有奇数个1

    偶校验:原始码流+校验位 总共有偶数个1

    2. 算法

    跟CRC类似,也是在原始码流后面,加上校验位。不同的是,它的校验位只有一位,要么是0,要么是1。并且它的校验码还可以放在码流的前面。

    如下图。

    例如下图有5组原始码,校验位的计算方法如下。红色代表校验位。

    相信大家稍微动下脑子就能想明白,我就不做过多解释了。

    3. 应用举例

    奇偶校验码一个最为常见的应用场合就是ASCII码。

    ASCII码占用一个字节,低7位是有效位,最高位用作奇偶校验。

    4. 错误检测能力

    只能检测出奇数个错误。

    例如还是ASCII码 大写字母 A

    奇校验 正确码流 11000001

    错1位 11000011 变成了偶数个1,能检测出错误

    错2位 11000010 变成了奇数个1,检测不出错误

    错3位 11001010 变成了偶数个1,能检测出错误

    偶校验 正确码流 01000001

    错1位 01000011 变成了奇数个1,能检测出错误

    错2位 01000010 变成了偶数个1,检测不出错误

    错3位 01001010 变成了奇数个1,能检测出错误

    5. 奇校验还是偶校验

    那么使用中是选择奇校验还是偶校验呢? 其实都有应用了。

    奇校验一个重要的特征是产生不了全0代码,所以在实际操作过程中选择的时候要考虑到这一点。

  • 相关阅读:
    [转载]分治算法详解
    数值的三种表示--C语言
    [转载]位运算操作
    递归--基于位运算的八皇后问题求解
    递归--基于回溯和递归的八皇后问题解法
    关于C/C++中数组元素的初始化
    递归的使用方法及说明
    递归--基于排列的八皇后问题解法
    Android笔记(二十) Activity中的跳转和值传递
    Android笔记(十九) Android中的Fragment
  • 原文地址:https://www.cnblogs.com/dushikang/p/8334776.html
Copyright © 2011-2022 走看看