程序的宗旨:通过编写CRC校验程序,加深对CRC原理的理解,同时学会将书本上的原理运用于实际,动手实践才能学得更快。 注:本文关于CRC原理那部分内容,来自网络搜集。 1. 需求分析 编写一个CRC校验的模拟程序,该程序实现的功能如下:输入:一串二进制比特串 输出:CRC校验码 2. CRC校验原理分析 在此,我们主要从适合于编程实现的角度分析CRC校验
在嵌入式开发中,经常使用到CRC校验算法,用于校验通信数据存储器数据。之前只是使用,对CRC原理及各种CRC算法的区别并无研究。参考网络上各位大神的文章和资料,从嵌入式软件开发的角度学习了下CRC校验算法,作个总结记录。 参考资料:CRC校验手算及直观演示一、简介循环冗余校验(Cyclic Redundancy Check, CRC),是数据通信中最常采用的一种数据校验方式。与其他校验算法(如累
CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性完整性。CRC校验原理 一、基本原理CRC检验原理实际上就是在一个p位二进制数据序列
# 实现Python CRC校验 ## 一、整体流程 首先我们需要了解CRC校验的计算流程,接着按照以下步骤来实现Python CRC校验的计算: | 步骤 | 操作 | | ---- | ---- | | 1 | 初始化CRC校验表 | | 2 | 将数据转换为二进制 | | 3 | 对数据进行CRC校验计算 | | 4 | 返回CRC校验 | ## 二、具体操作 ### 1
原创 2月前
55阅读
什么是CRC校验CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性完整性。CRC校验原理:其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验校验码,但要注意,这里的数也是二进制序列
原文地址:CRC校验原理作者:神人转载:CRC校验原理1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以一个系数仅为‘0’‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码10111
转载 2023-06-25 11:57:37
542阅读
一、基础知识       1、CRC简介:            CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环
信息为m位,校验位为k个。计算k的最小值公式为:2^k-1>=m+k 例子:数据为11001100,k的数值是多少?       2^k-1-k>=8       经推导k=4,所以m+k=12位 然后推导出督导公式 数据位  D    C    B   &
原创 2013-03-19 13:14:01
1551阅读
CRC原理详解算法原理查表法反向算法附录1:crc16校验表及用法 算法原理Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误。假设数据传输过程中需要发送15位的二进制信息g= 101 0011 1010 0001,这串二进制码可表示为代数多项式g(x) = x14 + x12 + x9 + x8 + x7 + x5 +
算法介绍循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。CRC校验计算速度快,检错能力强,易于用编码器等硬件电路实现。从检错的正确率与速度、成本等方面,都比奇偶校验校验方式具有优势。因而,CRC 成为计
 点击0元报名后领取>>>软考18本电子版教材 & 15个科目知识点速记 + 17套历年真题试卷 + 80篇软考优秀论文6G资料包2013年下半年软考高级信息系统项目管理师下午案例分析真题试题一案例问题:请计算当前的成本偏差(CV)进度偏差(SV),以及进度绩效指数(SPI)成本绩效指数(CPI),并分析项目的进展情况。案例背景 一个信息系统集成项目有A、B
转载 2023-08-07 18:48:15
52阅读
UDP校验计算UDP概述UDP首部UDP计算校验UDP实际例子 UDP概述UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,UDP在IP报文的协议号是17。UDP首部用户数据报UDP有两个字段:数据字段
#include <stdio.h> #include <string.h> // 转化后的二进制最多的位数 #define MAX_BIN_LENGHT 100 // 输入的表达式最多的字符数 #define MAX_EXP_LENGHT 100 // 根据表达式得到二进制数 void getBinary(char *express,int binary[MAX_
转载 11月前
105阅读
目录前言CRC算法简介CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结前言最近的工作中,要实现对通信数据的CRC计算,所以花了两天的时间好好研究了一下,周末有时间整理了一下笔记。一个完整的数据帧通常由以下部分构成:校验位是为了保证数据在传输过程中的完整性,采用一种指定的算法对原始数据进行计算,得出的一个校验值。接收方接收到数据时,采用同样的校验算法对原始数据进行计算,如果计算结果接收
基本概念CRC(循环冗余校验码):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性完整性。循环冗余校验码(CRC)的基本原理在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一
CRC校验码举例一、首先复习一下异或运算(XOR),相同得0,相异得1.二、多项式算数   使用多项式算数是为了是为了在进行二进制计算时无需考虑进位问题。   CRC中用到的除数正是由多项式的各项系数组成。   比如+++1,CRC除数为10111。三、计算步骤   1.展开多项式,得到CRC除数。&nbsp
转载 10月前
144阅读
原理在要发送的帧后面附加一个数,生成一个新帧发送给接收端。到达接收端后,再把接收到的新帧除以(采用“模2除法”)发送端接收端共同选定的某个特定除数。结果应该是没有余数,如果有余数,则表明该帧在传输过程中出现了差错。[因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就是已经能整除了)]。名词解释附加一个数:该数即用来校验校验码,为二进制序列数。模2除法:模2除法与算术除法类似,
WORD CRC16Hi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,
原创 2014-11-10 11:02:04
839阅读
一、什么是CRC校验CRC校验(即循环冗余校验)是数据通讯中最常采用检错纠错的一种校验方式,它广泛应用于数据链路层的数据传输中,以保证数据传输可靠性的一种差错检测措施。其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性完整性。CRC 算法的基本思想是将传输的
原创 2017-06-20 13:57:42
2346阅读
1评论
根据应用环境与习惯的不同,CRC又可分为以下几种标准:①CRC-12码;②CRC-16码;③CRC-CCITT码;④CRC-32码。(ZIP, RAR的校检算法)生成多项式是接受方发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。接受方利用生成多项式对收到的编码多项式做模2除检测确定错误位置。应满足以下条件:a、生成多项式的最高位最低位必须为1。b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。c、不同位发生错误时,应该使余数不同。d、对余数继续做除,应使余数循环。生成步骤1、将x的最高次幂为R的生成多项式G(x)转换成对应的R
原创 2021-09-01 11:39:23
292阅读
  • 1
  • 2
  • 3
  • 4
  • 5