CRC循环校验怎么计算 循环的性质以及CRC如何进行纠错_怎么判断crc校验码是否正确_...xiexiaohan的博客-程序员宅基地

技术标签: 计算机组成  crc  mooc  计算机基础  

CRC是循环冗余校验,关于其是怎么计算校验码的,课程上都讲的很清楚,但是对于冗余的特性以及CRC如何进行纠错,很多地方都没有提到

在复习组原的时候看到了秦老师的mooc,他讲了一个CRC计算检验的例题,但是关于纠错的部分也是一笔带过,这里针对这道例题,进行一下补充

例题

真值为1100,计算其CRC校验码并讨论如何纠错

发送方进行CRC计算

如图,其中G(x)可以通过查表得知
在这里插入图片描述
在1100后面补上3个0,为1100 000

在这里插入图片描述

到这一步CRC校验码就算出来了,那么对于接收方来说,要如何判断接受的数据是否正确的?

接受方进行错误检测

在这里插入图片描述
如果余数不为0,则说明数据有错

CRC纠错

在CRC检验中,不同位数的错对应不同的余数,比如这道题

在这里插入图片描述

根据不同的余数的值就能知道哪一位出错了,同时理论上也能进行纠错

但是,在实际的运行中,计算机并没有对每一位都做了纠错电路,这就需要用到CRC的循环性质

假设出错位是第五位,1100010 -> 1100110,此时的余数是100,对100补个0,依然用生成多项式G去做模2运算,得到的余数是011,由表可知,恰好是第四位出错时的余数,说明余数存在循环性

在这里插入图片描述
利用这个性质,计算机只在第一位做纠错电路,也就是说在纠错时,计算机不知道100和011,计算机只知道第一位出错的余数是101

还是假设出错位是第五位,此时接收方拿到的是1100110,余数位100
对余数不断的进行模2运算,同时移动校验码

数值+校验数据 余数
1100110 100
1001101 011
0011011 110
0110110 111
1101100 -> 0101100 101(纠错)
1011000 001
0110001 010
1100010 100

如此,就完成了第五位的纠错

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42217106/article/details/119217259

智能推荐

eclipse中js报错的解决方法,100%有效_eclipse 编辑js 报错-程序员宅基地

eclipse中javascript报错问题处理:三个地方:"eclipse设置 ":Java代码 window->preference->Validator->Errors/Warnings->Enable Javascript Sematic validation前面的钩子去掉; ".project "文件:Java代码 projectDescription->b_eclipse 编辑js 报错

oracle加索引 oracle,Oracle之索引(Index)实例讲解 - 基础_ELAINE TAO的博客-程序员宅基地

Oracle索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象,主要目的是加快数据的读取速度和数据的完整性检查。索引的建立是一项技术性要求非常高的工作。一般在数据库设计阶段就要考虑到如何设计和创建索引。1. 创建索引创建索引的语法:CREATE [UNIQUE] INDEX [schema.] indexON [schema.] table (column [ASC | DESC..._oracle 索引

谈谈c语言程序如何变成可执行文件-程序员宅基地

环境在ANSI的任何一种实现中,存在两种不同的环境。 翻译环境:在这个环境里,源代码被转换为可执行的机器指令。 执行环境:用于实际执行代码。翻译环境组成一个程序的每个源文件通过编译过程分别转成目标代码各个目标文件由链接器捆绑在一起,形成一个单一而完整的可执行程序。链接器同时也会引入标准c函数库中的任何被改程序所用到的函数。 过程如下图所示 实际上,翻译环境本身也有几个阶段组成: 编

VRTK_Grab,VR抓取物体的实现-程序员宅基地

学习了VRTK_Example_5之后当然要自己实现一个抓取物体,记录一下以后当回顾把台上的球抓着,然后扔到框框里面。很简单。把原来Example中[ExampleSceneScripts]和[VRTK_SDKManager]做成Prefabs,用的时候直接拖进来,反正也不会变。手柄上添加的组件VRTK_InteractGrab

物理借助传感器用计算机测速度,高中物理实验一览表.doc-程序员宅基地

高中物理实验一览表高中物理实验教材章次实验题目和内容实验实验备注演示分组必修1第一章:运动的描述测滑块在气垫轨道上滑行的速度用打点计时器测速度借助传感器用计算机测速度第二章:匀变速直线运动的研究探究小车速度随时间变化的规律羽钱管实验(牛顿管实验)测反应时间伽利略斜面实验第三章:相互作用悬挂法确定物体的重心观察桌面的微小形变探究弹性形变与弹力的关系摩擦力探究滑动摩擦力的影响因素第四章:牛顿运动定律探..._跟电脑有关的高中物理小实验

hadoop 之Hadoop生态系统-程序员宅基地

1、Hadoop生态系统概况Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。下图为hadoop的生态系统:2、HDFS(Hadoop分布式文件系统)源自于Google的GFS论文,发表于2003年10月,HDF...

随便推点

Phonetic Symbols&Rules of Pronunciation-程序员宅基地

          音标 Phonetic Symbolshttp://yinbiao.tingclass.net/1.1元音1.1、元音:元音有20个,其中单元音12个,双元音8个。(1)“短”单元音[i][ə][ɔ][u][ʌ][e][æ]衣..._rulesofpronunciation

17 - 01 - 18 计算机网络(08)(IP数据报转发)-程序员宅基地

路由器与IP数据报转发: 各个网络最初是互不联通的,连接这些网络的时候使用了一种设备:路由器,也就是网关。路由器的根本功能是转发 IP数据报。经多个路由器的多次转发,最终把IP数据报 进行了传输。路由器上的同一接口既可以接收数据,也可以发送数据。接口收到IP数据报后,根据其中的目的IP地址确定输出接口,与交换机类似,路由器中也有一个转发表,叫做路由表,同样具有自动学习的能力。

Message Queue(消息队列)介绍与应用-程序员宅基地

一、消息处理中的主要概念“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中。“消息队列”是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。“消息队列”是 M

mac php-7.4.3安装问题_fatal error: 'sql.h' file not found-程序员宅基地

mac brew install php74 失败,brew 库php74尚未更新。自己下载最新版php安装过程中出现错误:php-7.4 fatal error: 'libxml/parser.h' file not found处理方法: 将libxml的目录软链到 include 目录 解决问题ln -s /usr/local/Cellar/libxml2/2.9.7/i..._fatal error: 'sql.h' file not found

《实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)》一1.3 配置语音接口...-程序员宅基地

本节书摘来自异步社区《实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)》一书中的第1章,第1.3节,作者 刘丹宁, CCIE#19920 , 田果, #19036 ,更多章节内容可以访问云栖社区“异步社区”公众号查看1.3 配置语音接口实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)为了将语音设备连入网...

树莓派 3B 入手 基础篇(一)_树莓派有几代-程序员宅基地

树莓派3B 已经到手玩了好几天了,之前一直用的飞思卡尔的arm9开发板,两者相比真心觉得树莓派真是太牛逼了。废话少说,今天就是要把之前对树莓派学习做一个总结;(一)、 拿到开发板第一件事就是想要让开发板跑起来,因为官方树莓派的开发板是裸机,需要偶们自己烧系统; 准备: 树莓派开发板,一个系统镜像文件,8G 及以上sd卡 1). 树莓派系统官网下载地址: h_树莓派有几代

推荐文章

热门文章

相关标签