引言:
常用的数据校验方法有三种:奇偶校验,海明校验和循环冗余校验(CRC)。其对应的是三种不同而又有关联的码制,以下编者打算从它们的编码原理,需要的基础知识以及实例来对此进行大致的分析。在了解数据校验之前,首先谈谈它有什么作用。
了解计算机数据格式的伙伴们都知道,计算机数据的存储是以二进制(0和1)组成的。然后8个位(8个1或者1)是一个位byte,这就是我们平常kb中的b。一谈到这里大家就豁然开朗了。如果我们没有数据校验码来协助检测传输的数据的正确性,那么可能一个小小的二进制位就可能导致文件的损坏,数据校验的重要性由此可知。当然,数据校验码也是由二进制0和1组成。

    接下来我们逐步介绍这三种互相有关联的编码制度。

一,海明校验码
1)优点:并行纠错(类似于宽敞的高速公路),耗时短,校验位开销小(校验码数目相对较少,码距为4)
2)缺点:硬件开销大(高速公路的造价很高)
3)原理:假如有r个二进制校验位(默认值为0),它们需要对已知的k个二进制数据进行分组校验 。
那么需要满足这个公式:2^r≥k+r+1(r个二进制校验位共有2的r次方种方法,k个数据位,1位备用位)。这个公式的含义就是:你要以r个二进制位表示出总的数据长度。这样就能完整地表示所需要校验的数据了。 这个公式有一个局限:只能校验一个二进制位。
我们可以理解到,所有的数值都能用1,2,4,8表示出来

数据校验码(奇偶校验,海明校验,循环冗余校验)内容总结及个人经验分享相关推荐

  1. 计算机组成原理数据校验之奇偶校验,海明校验

    文章内容基于:计算机组成原理_华中科技大学_中国大学MOOC(慕课) (icourse163.org) 仅作为日常学习的笔记整理 目录 一. 数据校验的基本原理 1.数据校验的必要性 2.数据校验的基 ...

  2. c语言海明校验码编码,海明校验码的编码规则有哪些?

    在海明码中, 位号数(1.2.3.--.n)为2的权值的那些位,即: 1(2^0).2(2^1).4(2^2).8(2^3).-2^(r-1)位,作为奇偶校验位,并记作: P1.P2.P3 .P4.- ...

  3. 进制转换及如何求校验码(海明校验码及循环冗余校验CRC码)

    文章目录 前言 一.进制转换 1.1 二进制转换为八进制数和十六进制数 1.2 任意进制数转换为十进制数 1.3 十进制转换为任意进制 二.校验码求取 2.1海明校验码 2.2循环冗余校验CRC码 总 ...

  4. [软考知识点总结③] 【中级软件设计师】计算机组成原理——校验码、海明校验码、奇偶校验码、循环校验码

    奇偶校验码(Parity Codes) 奇偶校验码最简单,但只能检测出奇数位出错. 如果发生偶数位错误就无法检测. 但经研究是奇数位发生错误的概率大很多. 而且奇偶校验码无法检测出哪位出错.所以属于无 ...

  5. 常用校验码(奇偶校验码、海明校验码、CRC校验码)

    常用校验码(奇偶校验码.海明校验码.CRC校验码) 一.奇偶校验码 二.海明校验码 三.CRC校验码   计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变 ...

  6. 如何查看文件的md5校验码、sha1校验码和sha256校验码

    如何查看文件的md5校验码.sha1校验码和sha256校验码 本文是基于Windows 10系统和ubuntu 14.04系统环境,使用命令查看文件的md5校验码.sha1校验码和sha256校验码 ...

  7. CRC冗余校验码源码代码c语言,循环冗余校验码(CRC)应用总结(包括C++源码)

    最近在实习期间需要用到数据的校验,所选为CRC16,那么就在此总结一番吧. 现在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用 ...

  8. 校验码 - 奇偶校验

    何谓奇偶校验? 奇偶校验是一种简单有效的校验方法. 这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数或者偶数 位数是奇数的就叫做奇校验,偶数就叫做偶校验 通过这种方式可以使码距变成2 举例 ...

  9. bcc校验码计算_CRC校验你会吗?计算、校验、C语言实现,三步教你轻松搞定

    目录 前言 CRC算法简介 CRC计算 CRC校验 CRC计算的C语言实现 CRC计算工具 总结 前言 最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了一 ...

最新文章

  1. 爬虫之selenium控制浏览器执行js代码
  2. PHP中echo与print和print_r
  3. android不能在主线程,android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问(示例代码)...
  4. 人人想健康!但,健康的,最主要因素,是什么?
  5. Vue.js 组件编码规范
  6. Android 存储学习之保存系统短信到SD卡
  7. Windows bat命令解压缩文件360zip
  8. 灰色马尔科夫模型matlab实现
  9. SpringBoot下实现PDF转word(Maven项目)
  10. 斐讯K2 A6版SZU校园网刷机方法
  11. swiper设置autoplay不起作用
  12. java开发手机app_java 怎么开发手机app接口?
  13. 两个表格合并怎么做?
  14. HDMI 连接笔记本与显示器
  15. 五类车险事故保险公司为何不赔?
  16. js中text方法是啥意识_JavaScript | 文本节点Text常用方法
  17. ③⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
  18. 电商精细化运营的五大关键指标和三个关键思路——笔记
  19. 教你使用Java制作倒计时
  20. 村子中有50个人,每人有一条狗

热门文章

  1. oracle中笛卡尔积怎么用,ORACLE多表关联中的笛卡尔积
  2. 电脑彻底卸载双系统中的Ubuntu ThinkPad X1 Carbon
  3. html锚点简单使用
  4. Vue 发送数据请求
  5. 3d激光SLAM:LIO-SAM框架—IMU预积分功能数据初始化
  6. 斯坦福应智韬:Graph Neural Network Applications
  7. 中值滤波(matlab)
  8. 解决mysql的utf8编码中生僻字写入时Incorrect string value错误
  9. 通过一个案例,理解FaaS的运行逻辑
  10. JavaScript对象——数学对象