CRC(循环冗余校验)
关于CRC(循环冗余校验),我在网上看了许多的文章,感觉看的很懵逼,废话一堆(可能是我理解不上去0.0),下面是我的一些理解(如果有误谢谢指出):
关于crc,它主要分为两个部分,一个是发送端通过crc算法进行编码,另一个是通过crc算法进行译码。来检测传输过程中是否错误,是否有数据丢失。(网上大多数都是编码,很少讲解码)
1、crc编码:
假如想要传输的数据为6bit的101001,那么对于一个随机的除数1101来说,下面就是他的算法,通过除数与被除数之间按位异或,得到余数001,将其加回到数据101001上得到待传数据101001001,和效验码(除数)1101,发送给接收端。

2、crc译码
对于接收到的数据101001001和效验码1101进行运算,来判断是否有数据丢失,做同样的异或,如果结果除尽,代表数据没有丢失(也可能丢失的位置很巧合刚好除尽,小概率)

这些博客的内容来自我工作、学习时的感悟、与行业前辈的交流感悟以及读书时的笔记,一部分内容可能与其他的网络资源类似,如果有相关问题的话(比如内容有错),请私聊博主或者在博文下面留言评论。
写博客最初目的就是记录自己容易忘记的东西,而不是像写书那样专门写给别人看的。所以,文章可以转载(转载请标明出处 http://www.cnblogs.com/podia/ ,作者:podia),无需版权。
CRC(循环冗余校验)的更多相关文章
- 【转】 CRC循环冗余校验码
1.CRC CRC循环冗余校验码是数据通信中的一种查错校验码. 循环冗余检查对数据进行多项式计算,将计算结果附加在帧后面,接收数据的设备执行模2运算,保证数据传输的正确性和完整性. 2.模2除法 ①不 ...
- CRC循环冗余校验码
原文转载自:https://blog.csdn.net/hm108106/article/details/73332465 1.CRC CRC循环冗余校验码是数据通信中的一种查错校验码. 循环冗余检查 ...
- CRC循环冗余校验码总结(转)
转自 http://blog.csdn.net/u012993936/article/details/45337069 一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclic ...
- Modbus库开发笔记之八:CRC循环冗余校验的研究与实现
谈到Modbus通讯自然免不了循环冗余校验(CRC),特别是在标准的串行RTU链路上是必不可少的.不仅如此在其他开发中,也经常要用到CRC 算法对各种数据进行校验.这样一来,我们就需要研究一下这个循环 ...
- 关于CRC循环冗余校验的总结(C#)
1. 实验要求 (1)通过CRC(循环冗余校对)序列的计算,掌握C#语言中类的静态方法与动态方法的区别. (2)Shell与Windows Form 的通信作为扩展提高内容. 2. 实验内容 主要工 ...
- CRC循环冗余校验算法
现实中通信链路都不会是理想的,比特在传输的过程中可能会出现差错,0变成1,1变成0.这就叫做比特差错.因此为了保证数据传输的可靠性,在计算网络传输数据时,必须采用各种检验措施来处理比特差错.在数据链路 ...
- CRC循环冗余校验---模2除法解析
关于模2除法,网上的人说了一大堆规则和原理,感觉很容易把小白绕进去,下面我只说怎么计算,不说其中的规则和原理.
- CRC(Cyclic Redundancy Check)循环冗余校验码与海明码的计算题
(17)采用CRC进行差错校验,生成多项式为G(X)=X4+X+1,信息码字为10111,则计算出的CRC校验码是 (17) .A.0000 B.0100 C.0010 D.1100试题 ...
- 循环冗余校验(CRC)算法入门引导
目录 写给嵌入式程序员的循环冗余校验CRC算法入门引导 前言 从奇偶校验说起 累加和校验 初识 CRC 算法 CRC算法的编程实现 前言 CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式.在嵌 ...
- 【转】循环冗余校验(CRC)算法入门引导
原文地址:循环冗余校验(CRC)算法入门引导 参考地址:https://en.wikipedia.org/wiki/Computation_of_cyclic_redundancy_checks#Re ...
随机推荐
- 北京数途科技有限公司--EAM MAXIMO介绍
一.EAM概述: EAM( Enterprise Asset Management)即企业资产维护管理系统 ,它是面向资产密集型(Asset-intensive)企业的企业信息化 解决方案的总称,其前 ...
- Django中间件之SessionMiddleware源码分析
settings.py文件中 MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', ] # from djang ...
- redis入门指南(七)—— 安全、协议、管理工具及命令属性
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 安全 1.可以使用bind参数绑定一个地址,使redis只接受这个地址的连接. 2.使用requ ...
- 谈谈Netty内存管理
前言 正是Netty的易用性和高性能成就了Netty,让其能够如此流行. 而作为一款通信框架,首当其冲的便是对IO性能的高要求. 不少读者都知道Netty底层通过使用Direct Memory,减少了 ...
- 刷题[CISCN2019 总决赛 Day2 Web1]Easyweb
解题思路 打开网页是这样一个登陆框,随机试了一下常见弱密钥,二次注入等.均是返回不同的猫咪图案 不同的id对应不同的猫咪图案.经测试,返回的id应该是无序,随机的.感觉这里有可能存在注入点,但是测试好 ...
- Codeforces Round #672 (Div. 2) A - C1题解
[Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...
- Lua设计与实现--读书笔记
目录 lua简介 一种通用的数据类型:lua_TValue 字符串 Table lua实现一个队列 lua简介 C++底层核心模块,暴露核心接口给lua脚本层,网络的收发都在c++层完成,本书简述lu ...
- 与Bat脚本的故事
因为工作时需要将定时处理的业务抽出来,废弃通过监听定时调用的这种方法,改为通过第三方软件定时执行bat脚本来实现,所以学习了一下bat脚本,整理出一些学习中的基础点和重点. 基础点: (1)bat脚本 ...
- Python-统计序列中元素
问题1: 随机数列[12,5,8,7,8,9,4,8,5,...] 中出现次数最高的3个元素,他们出现的次数 问题2: 对某英文文章的单词,进行词频统计,找出出现次数最搞得10个单词,他们出现的次数是 ...
- c++中的#include "stdafx.h"
转自:https://blog.csdn.net/lijun5635/article/details/13090341 在网上看到的一篇很详细的文章解释,之前一直不明白这个头文件什么作用,用来学习很好 ...