1.7校验码:校验码、规则校验码-奇偶校验、检验码-循环校验码CRC、模2除法、校验码-海明校验

news2024/11/14 13:02:51

1.7校验码:校验码、规则校验码-奇偶校验、检验码-循环校验码CRC、模2除法、校验码-海明校验

  • 校验码
  • 校验码-奇偶校验
    • 编码规则
  • 检验码-循环校验码CRC
    • 编码规则
    • 什么是模2除法
    • 如何计算校验码
  • 校验码-海明校验

校验码

计算机在接收相应信息的时候能够识别的的都是一些电器信号,01二进制这种,在网络上传递信息的时候,也是通过电器信号、或者电流之类的来进行传递。电流在传输的过程当中,距离很长,一千公里、一万公里都有,那么长度很长的情况下,电流是否会产生衰竭呢?或者是一些不知名的错误,答案是有的。

所以在传递信息的时候,必须要对信息做一些额外的处理,方便我们来检查信息是否正确,这种检查的信息就叫做校验码,校验码都是冗余信息。

软考中,主要涉及三种校验方式:奇偶校验、CRC循环冗余校验、海明校验。

校验码校验码位置检错纠错校验方式
奇偶校验1一般拼接在头部,也可以拼接在尾部可检奇数位错不可纠错奇校验:最终的1的个数是奇数个;偶校验:最终1的个数是偶数个
CRC循环冗余校验拼接在信息位尾部生成多项式最高次幂决定可检错不可纠错模二除法求余数,拼接作为校验位
海明校验2r>=m+r+1插入在信息位中间(2k位置)可检错可纠错分组奇偶校验

校验码-奇偶校验

奇偶校验,可检查1位的错误,不可纠错,并且只能检查奇数位的错误,一般称作检查1位的错误,如果偶数位全的都错了,那么是无法检查出来的。

编码规则

奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。

奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数

比如传递性别,定义男女的编码,男0,女1,定义好编码后,这里的0和1可以称为码字
正常传输: 如果传输的是1,但是接收的是0,这种情况是发现不了错误的,因此需要增加冗余信息帮助我们做校验

经过奇偶校验校验码编码后,后面追加1的个数是奇数还是偶数的校验码,
发送的信息:男00,女11,这种信息传递的时候,我们认为出现错误概率较大的是1位出现错误,比如接收端是男01,或者女10就表示数据是非法的

如果传递女,发送00,奇偶性是满足的,这样是无法判断出数据是否有问题,所以奇偶校验,可检查1位的错误,不可纠错。

什么是纠错的过程?
在二进制传输的过程中,如果明确告诉你第一个数据位置出错了,知道错误的位置,就可以针对它取反进行修正。通俗来讲,就是能找到错误位置,就是可纠错,找不到错误位置,就是不可纠错。

检验码-循环校验码CRC

循环冗余校验(CRC,Cyclic redundancy check),可检错,对数据位不做要求,但是不可纠错。

CRC的编码方式是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简单的得到r位校验位(编码),以及如何从k+r位信息吗判断是否出错。考试要求需要掌握算法。

编码规则

循环冗余校验码编码规律如下:

  1. 把待编码的N位有效信息表示为多项式M(X)
  2. 把M(X)左移K位,得到M(X)×XK,这样空出了K位,以便拼装K位余数(即校验位)
  3. 选取一个K+1位的传声多项式G(X),对M(X)×XK做模2除
  4. 把左移K位以后的有效信息与余数R(X)做模2加减,拼接为CRC码,此时的CRC码共有K+N位

把接收到的CRC码用约定的生成多项式G(X)去除(生成多项式可以理解为一种惯例,它是发送方和接收方在通信之前就约定好的,所以它是题目已知的),如果正确,则余数位0;如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有唯一的对应关系。

什么是模2除法

特点:
每一位除的结果不影响其它位(无需进位、借位)

模2除法法则:
用除数对被除数最高几位做模2减,没有借位。
除数右移一位,若余数最高位为1,商为1,并对余数做模2减。若余数最高位为0,商为0,除数继续右移一位。
一直做到余数的位数小于除数时,该余数就是最终余数。
补充: 余数为0,则表示传输无差错,否则说明传输过程出现差错。

如何计算校验码

CRC校验码题目一般都是已知信息位,生成多项式也是已知的,我们一般就是求CRC校验码是多少。

例如: 若信息码字为111000110,生成多项式G(X)=X5+X3+x+1,计算出的CRC校验码位()。

解析:
①根据生成多项式求系数二进制
G ( X ) = X 5 + X 3 + x + 1 G(X)=X^{5}+X^{3}+x+1 G(X)=X5+X3+x+1
根据生成多项式来求系数二进制
G ( X ) = X 5 + 0 × X 4 + X 3 + 0 × X 2 + x + 1 G(X)=X^{5}+0×X^{4}+X^{3}+0×X^{2}+x+1 G(X)=X5+0×X4+X3+0×X2+x+1
X5系数为1,X4系数为0,X3系数为1,X2系数为0,X1系数为1,X0系数为1。
因此系数二进制=101011

②根据生成多项式的系数,来找余数的位数,有多少位?系数有N位的话,余数就是N-1位,也可以根据生成多项式的最高次幂来决定。
系数有6位,最高次幂是5,因此余数位数是5位。

③模2除法,被除数信息位拼接余数位个数的0,也就是②中求得的5个0,因此,被除数=11100011000000,除数是系数二进制=101011,结果是11001。
请添加图片描述

校验码-海明校验

海明校验是利用交叉校验的方式,形成多组不同的奇偶校验,这种校验如果多组交叉出现问题,可以找到出错的位置。所以海明校验既可检错,也可纠错。它的校验信息是插入在信息位当中2k的位置,比如20,21,22等等,它的校验方式是多组分组的奇偶校验方式。

海明校验在架构考试中出现的并不多,主要是前两种,掌握怎么计算校验位的位数即可。它的校验位数会根据信息的数据量来决定。
m表示已知的信息位的位数,
2 r ≥ m + r + 1 2^{r}\geq m+r+1 2rm+r+1

比如,已知需要传递10位信息位数据,需要多少位海明校验码?
假设是3
2 3 ≥ 10 + 3 + 1 , 8 ≥ 14 2^{3}\geq 10+3+1,8\geq 14 2310+3+1814
由此可知,3不满足,需要为4才可以
2 4 ≥ 10 + 4 + 1 , 16 ≥ 15 2^{4}\geq 10+4+1,16\geq 15 2410+4+11615

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring6】| Spring的入门程序、集成Log4j2日志框架

目录 一:Spring的入门程序 1. Spring的下载 2. Spring的jar文件 3. 第一个Spring程序 4. 第一个Spring程序详细剖析 5. Spring6启用Log4j2日志框架 一:Spring的入门程序 1. Spring的下载 官网地址:https://spring.io/ 官网地址&…

数学建模 latex 图片以及表格排版整理(overleaf)

无论是什么比赛,图片和表格的格式都非常重要,这边的重要不只是指规范性,还有抓住评委眼球的能力。 那么怎样抓住评委的眼球? 最重要的一点就是善用图片和表格(当然撰写论文最重要的是逻辑,这个是需要长期…

CorelDRAW2023最新版序列号使用教程

CorelDRAW2023用起来非常顺手,旨在为用户解决因在工作上带来的问题,在业内可谓享有极高的声誉,是业内人士常用的一款工具,有了它,可以更好的帮助用户把握好各个方面的细节,减少其他方面的失误,让…

RabbitMQ交换机(Exchanges)

目录 一、概念 二、临时队列 三、绑定 四、Fanout(扇出交换机) (一)介绍 (二)实战 五、Direct(直接交换机) (一)介绍 (二)实…

【LeetCode】1255. 得分最高的单词集合

1255. 得分最高的单词集合 题目描述 你将会得到一份单词表 words,一个字母表 letters (可能会有重复字母),以及每个字母对应的得分情况表 score。 请你帮忙计算玩家在单词拼写游戏中所能获得的「最高得分」:能够由 …

我看谁还敢说不懂git

文章目录一、Git介绍1.1、Git的作用1.2、Git的理念1.3、Git的特点1.4、Git对比SVN二、Git的概念2.1、Git基础概念三、Git的基本操作3.1、使用Git管理一个代码仓库的流程3.2、Git常用命令介绍四、Git状态的变化五、Git安装和配置5.1、Git的安装5.2、Git的配置六、Git的高级操作6…

【阅读笔记】SecureML: A System for ScalablePrivacy-Preserving Machine Learning

1. Motivation 针对机器学习中的出现的数据隐私泄露的风险,提出了线性回归、逻辑回归以及简单神经网络的隐私保护模型。 2. Contributions 2.1 为线性回归、逻辑回归以及神经网络设计安全计算协议 2.1.1.1 线性回归 线性回归损失函数为: , 采用SG…

数据分析:某电商优惠卷数据分析

数据分析:某电商优惠卷数据分析 作者:AOAIYI 专栏:python数据分析 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习,可…

单变量回归问题

单变量回归问题 对于某房价问题,x为房屋大小,h即为预估房价,模型公式为: hθ(x)θ0θ1xh_{\theta}(x)\theta_{0}\theta_{1}x hθ​(x)θ0​θ1​x 要利用训练集拟合该公式(主要是计算θ0、θ1\theta_{0}、\theta_{1}θ…

JavaScript DOM和BOM

目录 查找html元素 1.通过id 2.通过标签名 3.通过类名 DOM 1.创建动态的HTML内容 2.修改元素内容 3.改变HTML属性 4.改变css样式 DOM事件 DOM节点 1.添加HTML元素 2.删除HTML元素 浏览器对象 1.Window对象 2.Screen对象 3.History对象 4.Location对象 5.Navi…

深入理解java虚拟机精华总结:jvm内存模型(运行时数据区域)、对象、OOM异常

深入理解java虚拟机精华总结:jvm内存模型、对象、OOM异常jvm内存模型对象对象的创建对象的内存布局对象的访问定位OOM异常Java堆溢出栈溢出方法区溢出直接内存溢出以前读过好几遍《深入理解java虚拟机》这本书,最近又打算重读一遍,并且做一些…

一个接口多个实现如何选择注入对应的Bean_@Primary_@Resource_@Qualifier_@ConditionalOnProperty

文章目录引入结论案例Primary 指定默认注入的BeanQualifier配合Autowired 按名称注入对应的BeanResource 默认按照类型注入,可指定名称注入ConditionalOnProperty 结合配置文件统一设置bean的注入引入 在springboot中,如果一个接口有多个实现&#xff0…

SpringMVC - 13 - SpringMVC执行流程

文章目录1、SpringMVC常用组件2、DispatcherServlet初始化过程a>初始化WebApplicationContextb>创建WebApplicationContextc>DispatcherServlet初始化策略3、DispatcherServlet调用组件处理请求a>processRequest()b>doService()c>doDispatch()d>processDi…

【Neo4j】图数据库CypherQueryLanguage随笔

CQL语言随笔 一、Cyther关系描述 如图&#xff1a;唐僧&#xff0c;孙悟空&#xff0c;白骨精三者的关系图&#xff1a; Cypher语言描述他们的关系&#xff1a; (孙悟空)<-[:赶走]-(唐僧)-[:被骗]->(白骨精)-[:被打死]->(孙悟空) 二、CQL语言的使用案例 创建结点…

七、HTTPTomcatServlet

1&#xff0c;Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&#xff0c;这些网站统称为Web网站。如下就是通…

_react

React 中 keys 的作用是什么&#xff1f; Keys是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识 在开发过程中&#xff0c;我们需要保证某个元素的 key 在其同级元素中具有唯一性。在 React Diff 算法中React 会借助元素的 Key 值来判断该元素是新近创建的还…

ADAS-可见光相机之Cmos Image Sensor

引言 “ 可见光相机在日常生活、工业生产、智能制造等应用有着重要的作用。在ADAS中更是扮演着重要的角色&#xff0c;如tesla model系列全车身10多个相机&#xff0c;不断感知周围世界。本文着重讲解下可见光相机中的CIS(CMOS Image Sensor)。” 定义 光是一种电磁波&…

如何在 iPhone 上恢复已删除的通话记录/通话记录

您的通话记录/通话记录可能很重要&#xff0c;尤其是当您想要拨打之前联系过但未保存的号码时。如果您碰巧删除了通话记录&#xff08;有意或无意&#xff09;&#xff0c;本指南将帮助您了解如何检索它们并找回您需要使用的所有记录。我们将根据您的情况和您拥有的工具讨论不同…

【Tomcat 】Tomcat 架构原理解析到架构设计借鉴

Tomcat 发展这么多年&#xff0c;已经比较成熟稳定。在如今『追新求快』的时代&#xff0c;Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』&#xff0c;难道说如今就没有必要深入学习它了么&#xff1f;学习它我们又有什么收获呢&#xff1f; 静下心来&#…

一文让你彻底理解关于消息队列的使用

一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用解耦&#xff0c;异步消息&#xff0c;流量削锋等问题&#xff0c;实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ&#xff0c;Rabbit…