CRC(循环冗余检验码)

基本原理:在K位信息码后面加上R位校验形成N位编码(即CRC码),事先需要约定一个生成多项式G(x),校验码生成过程:将K位信息码向左移动R位然后mol(其实就是按位异或)上生成多项式G(x),所得余式即为校验码,校验的标准,将N位编码mol上G(x)如果所得余式为0,这说明信息完好(允许些许误差)。

需要满足的条件:CRC校验码位数 = 生成多项式位数 - 1

举例:

假设使用的生成多项式是G(X)=X3+X+1。4位的原始报文为1010,求编码后的报文。
解:
1、将生成多项式G(X)=X3+X+1转换成对应的二进制除数1011。
2、此题生成多项式有4位(R+1)(注意:4位的生成多项式计算所得的校验码为3位,R为校验码位数),要把原始报文C(X)左移3(R)位变成1010 000
3、用生成多项式对应的二进制数对左移3位后的原始报文进行模2除(高位对齐),相当于按位异或:
1010000
1011
------------------
0001000
0001011
------------------
0000011
得到的余位011,所以最终编码为:1010 011

CRC检验的更多相关文章

  1. CRC的校验原理

    一.基本原理 CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列:附加在数据序列之后的这个检验码与数据序列的内容之间存在着 ...

  2. linux网络编程-CRC校验

    1.CRC校验是什么?为什么要使用CRC校验? CRC 即 循环冗余校验  是一种差错检测方法,可以做到对帧的无差错接受 因为现实的通信链路都不会是理想的,比特在传输的过程中有可能出现差错, 为了保证 ...

  3. crc循环冗余检验

    CRC(Cyclic Redundancy Check):循环冗余检验.在链路层被广泛使用的检错技术. CRC原理: 1.发送端 1.1.在发送端先将数据分组,每组k个数据.假定要传送的数据是M. 1 ...

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

    一.奇偶校验码 二.海明校验码 三.CRC校验码   计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于计算机的储存是通过二进制代码来实现的的, ...

  5. CRC循环冗余校验算法

    现实中通信链路都不会是理想的,比特在传输的过程中可能会出现差错,0变成1,1变成0.这就叫做比特差错.因此为了保证数据传输的可靠性,在计算网络传输数据时,必须采用各种检验措施来处理比特差错.在数据链路 ...

  6. 数据链路层差错检测之循环冗余检验CRC

    引用https://blog.csdn.net/wenqiang1208/article/details/71641414 为什么引入CRC 现实的通信链路都不会是理想的.这就是说,比特在传输的过程中 ...

  7. CRC检错技术原理

    一.题外话 说来惭愧,一开始是考虑写关于CRC检错技术更深层次数学原理的,然而在翻看<Basic Algebra>后,我果断放弃了这种不切实际的想法.个人觉得不是因为本人数学水平差或者能力 ...

  8. CRC校验的问题(c语言实现CRC校验和)

    1. 前面的数 7A 01 00,计算的结果是0X4920 2. 那么把数据CRC加上 3. 测试代码,计算出来的结果对不上,什么情况?可是我把参考模型的全部都选了一遍,也对不上其中一个!!! 4.  ...

  9. 每天进步一点点------CRC码的FPGA实现

    一.CRC码的FPGA实现之一CRC的原理 实验目的 学习用FPGA设计一个数据通信中常用的数据检错模块——循环冗余检验CRC模块,熟悉理解CRC的检错原理. 实验原理 循环冗余检验(CRC)算法原理 ...

随机推荐

  1. Python类的多态的例子

    1 # -*- coding: utf-8 -*- 2 # 类的多态 3 4 # 定义Person父类 5 class Person(object): 6 def __init__(self, nam ...

  2. 开发 | 小程序wx.setScreenBrightness/wx.getScreenBrightness接口测试

    前言 最近接触了微信小程序 API - wx.setScreenBrightness .wx.getScreenBrightness 接口,调用该接口可以调节并显示手机屏幕亮度数据.对于喜欢腾讯新闻. ...

  3. sqlserver 重置标识列

    重置标识信息:DBCC CHECKIDENT('表名', RESEED,0) 检查标识信息:DBCC CHECKIDENT('SysModule', NORESEED)

  4. HDU 2296:Ring

    Problem Description For the hope of a forever love, Steven is planning to send a ring to Jane with a ...

  5. Visual Studio 2017 安装后无法创建c++或MFC项目

    话话不多说,直接上图

  6. UEP-添加表格

    UEP中添加新的表格标签:function initCustomToolBar(){ var strHtml="<table> <tr> <td id=\&qu ...

  7. visual studio添加lib库

    方法1: 通过设置工程配置来添加lib库. A.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录. B.添加文件引用的lib静态库路径 ...

  8. 久未更 ~ 三之 —— CardView简单记录

    > > > > > 久未更 系列一:CardView 点击涟漪效果实现 //在 cardview 中 实现点击涟漪效果 android:clickable="t ...

  9. 数据库 MySQL基础知识

    (关于MySQL的安装,具体见下面博客:http://www.cnblogs.com/wj-1314/p/7573242.html) 一.什么是数据库 ? 数据库是按照数据结构来组织,存储和管理数据的 ...

  10. dedecms幻灯片调用图片模糊的解决办法

    dedecms幻灯片调用的是缩略图,如果图片尺寸比例和幻灯片的大小相差太大的话,图片就会自动拉伸模糊,比较影响美观和用户体验,下面就有常用的2个方法来解决这个图片模糊的问题. 第一种:手动制图 我们用 ...