1、校验码概念

校验码主要是为了解决计算机各部件进行数据传输和交换,确保传送过程的正确无误,一是为了提高硬件电路的可靠性,二是提高代码的校验能力。通常会用校验码来检查传送的数据是否正确。

校验码编码分为两类:合法编码、错误编码。合理的设计错误编码和编码规则,可以在数据传输的时候发现某种错误是就会变成错误编码,从而达到检验错误的目的。

码距:指的是一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。

常用的三种校验码:奇偶校验码、海明码、循环冗余校验码。

2、校验码分类

3.1 奇偶校验码(Parity Code)

奇偶校验码特点如下:

无论数据位多少位,校验位只有一位

数据位和校验位一共所含的1个数为奇数,称为奇校验

数据位和校验位一共所含的1个数为偶数,称为偶校验

原理:在数据传输前,我们会求一次校验位,传输后,会求一次校验位,那么,在奇偶校验中,我们通过比较这两个校验位是否相同,一般是采用异或的方式,若结果为1,则说明有奇数个错误,结果为0,则说明正确或者偶数个错误。

常见的奇偶校验码 :水平奇偶校验码、垂直奇偶校验码、水平垂直奇偶校验码。

3.2 海明码(Hamming Code)

设数据位是n位,校验位是k位,则n和k满足以下关系:

2^k-1>=n+k

k 常取满足该关系的最小值。

选择题公式,可以记住

3个原则

海明码只能检测出2位错,纠1位错

海明码默认进行偶校验(除非特殊说明使用奇校验)。

海明码是一串由0和1组成的序列(除01外没有其他的值)

3.3 循环冗余校验码 CRC

循环冗余校验码广泛应用于数据通信领域和磁介质的存储系统中,它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。CRC的代码格式如下:

循环冗余校验码有两部分组成:数据为、校验位。若数据位占k位,则校验位占n-k位。n为CRC码的字长。检验码越长校验能力就会越强。在CRC编码是,采用的是模2运算,模2运算加减运算的规则是按位运算,不发生借位和进位。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

计算机系统基础:校验码知识笔记相关推荐

  1. 计算机系统基础:总线结构知识笔记

    1.总线定义 计算机和设备之间传输信息的公共数据通道,是连接计算机硬件内多种设备的通信线路.它实现了总线上所有设备共享. 2.总线的分类 2.1 数据总线(DB) 用来传递数据信息,双向的.数据总线的 ...

  2. 计算机系统基础:设备管理知识笔记

    1.设备管理介绍 设备管理主要包括设备分配.缓冲区管理.实际物理I/O设备操作.通过管理提高设备利用率和方便用户使用的目的. 设备属于计算机系统和外界交互的工具,不要负责计算机和外部的输入/输出工作, ...

  3. 南大袁春风计算机系统基础(一)笔记

    南大袁春风计算机系统基础(一)笔记 一.计算机系统基本组成与基本功能 冯.诺依曼结构计算机模型 冯.诺依曼计算机结构的特点 计算机的指令和数据 二.程序开发和执行过程简介 程序开发的发展过程 典型程序 ...

  4. django基础到高手知识笔记总结,50页笔记,共10大模块(第一期).md

    django基础到高手知识笔记总结,50页笔记,共10大模块(第一期).md 完整笔记在这: Django基础到高手完整笔记 完整笔记目录: 第一期笔记内容 Python Web 框架要点 1. We ...

  5. CRC校验码学习笔记

    一.CRC校验的作用 CRC:循环冗余校验码,是数据通信领域中最常用的一种查错校验码,它的优点是信息字段和校验字段的长度可以任意选定.使用CRC的方法是,在数据传输前计算信息字段的CRC,将其作为校验 ...

  6. 操作系统基础:存储管理知识笔记(一)

    1.存储器基础知识 存储器管理的对象是主存或内存,存储器是计算机系统中非常关键的资源,用来存放各种信息的主要场所.存 储器管理功能主要包括:主存空间的分配和回收.提供主存利用率.扩充主存.主存信息的保 ...

  7. 关系数据库基础:函数依赖知识笔记

    1.函数依赖的定义 设R(U)是属性集U.上的关系模式,X, Y是U的子集.若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X集合上的属性值相等,而在Y上的属性值不等, 则称X函数确定Y ...

  8. 操作系统基础:存储管理知识笔记(二)

    一.分页存储管理 1.分页存储管理介绍 1.1 分页原理 页:将一个进程的地址空间划分为若干个大小相等的区域称为页. 块.页框:主存空间划分成与页相同的若干个物理块. 1.2 地址结构 分页系统地址结 ...

  9. 操作系统基础:进程知识笔记(三)

    1.死锁概念知识 计算机中存在许多互斥资源(打印机).软件资源(进程表.临界区)如果两个进程同时调用打印机,或同时进入临界区必然会出现问题. 死锁:指两个以上的进程互相要求对方已经占有的资源导致无法继 ...

最新文章

  1. Apache HBase快照介绍
  2. 微信小程序组件间通信(二)
  3. 第四章MPU6000传感器驱动解析
  4. linux终端Tab提示对大小写不敏感
  5. Eclipse或者MyEclipse—在Eclipse或MyEclipse中的操作(3)
  6. 大数据下的数据分析-Hadoop架构解析[转]
  7. jmeter性能测试面试题二【多测师_王sir】
  8. android 古诗,古诗词朗诵安卓
  9. wmb 开发的几个坑
  10. 谈谈多年的创业之路和网络生涯
  11. 支持预览html的解压软件,浏览器网页在线解压压缩文件工具
  12. FOJ 1573 大学自习室
  13. matlab仿真 多胞体,四维空间(三):谈正多胞体
  14. 使用Amazon Elasticache构建你的专属内存缓存服务集群
  15. SVN :Cannot verify lock on path XXX,no username available
  16. Web自动化测试[playwright结合pytest使用]
  17. scamper使用详解
  18. 预告 | 锁定5.13,天翼物联数采产品发布会
  19. Android复杂界面布局解决方案
  20. 广州大学大学物理练习7 振动力学

热门文章

  1. 用phpmyadmin更改root密码的方法
  2. 在WORD中插入带圈的数字的序号
  3. 程序员最痛苦的事,就是程序出错;程序员最最痛苦的事,就是程序出错了还没有错误信息!--IIS Service Unavailable 问题如何解决...
  4. TCP/IP 通信示例
  5. 【机器学习】——纯Python建立BP模型
  6. python时间处理模块有哪些_Python模块之时间处理
  7. 怎么理解python语言_Python语言入门1-理解Python语言
  8. Nginx多种负载均衡策略搭建
  9. python 多进程与多线程配合拷贝文件目录
  10. css3-6 表格如何设置样式和定位样式是什么