那个CRC校验码我不太明白,我看到你给别人的回答,有一些地方不是很懂

如题所述

CRC定义及原理
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。
目录
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2的R次方除以生成多项式G(x)得到的余数就是校验码。
二.CRC 校验码的数学计算方法
CRC 检验的基本原理是: 在一个k 位二进制数据序列之后附加一个r 位二进制检验码序列, 构成一个总长为n = k + r 位的二进制序列, 这种编码又叫( N,K ) 码, 它可以提高整个编码系统的码距和检错能力。例如, 对k 位二进制数据序列D = [ ,] 进行计算, 得到的r 位二进制检验码表示为R =[ , ] , 将R 附加到D 之后, 构成一个新的n 位二进制序列M= [ , , ] 。其中校验码R 是通过对数据序列D 进行二进制除法取余式运算得到的, 它被一个称为生成多项式的r + 1位二进制序列G = [ , ]来除, 得到的余数就是CRC 校验码。
名称 生成多项式 简记式* 应用举例
CRC-4 x4+x+1 3 ITU G.704 CRC-12 x12+x11+x3+x+1
CRC-16 x16+x15+x2+1 8005 IBM SDLC
CRC-ITU** x16+x12+x5+1 1021 ISO HDLC, ITU X.25, V.34/V.41/V.42, PPP-FCS
CRC32 x32+x26+x23+...+x2+x+1 04C11DB7 ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCS CRC-32c x32+x28+x27+...+x8+x6+1 1EDC6F41 SCTP

三.CRC 串行算法方法
温馨提示:内容为网友见解,仅供参考
无其他回答

那个CRC校验码我不太明白,我看到你给别人的回答,有一些地方不是很懂
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。目录 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码...

CRC校验是什么?
Redundancy Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”。(哇,真拗口,希望大家不要当我是唐僧,呵呵。^_^)CRC有什么用呢?它的应用范围很广泛,最常见的就是在网络传输中进行信息的校对。其实我们大可以把它应用到软件保护中去,因为它的计算是非常非常非常严格的。严格到...

crc校验是怎么回事?比如我有一个文件通过网络传输需要校验
CRC全称:Cyclic Redundancy Check 循环冗余校验码 在文件或数据传输中,CRC用于检测数据在传输过程中的错误。在工作场景中,如视频编解码,每一帧的CRC校验确保了数据解码或编码的准确性。为什么要使用CRC?数据传输过程中,因不可控因素可能引发错误。CRC在数据流中加入校验码,接收端通过校验码判断数据的...

CRC 循环冗余校验码谁会计算啊?! 教我啊~~~
CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。 它的编码规则是:1、首先将原信息码(kbit)左移r位(k+r=n)2、运用一个生成多项式g(x)(也可看成二进制数)用模2除上面的式子,得到的余数就是校验码。

这是有关循环冗余校验码知识,求专家们指导。不懂的地方如下。
生成多项式是CRC算法给定的,这个多项式可以随意给定,不过多项式有强弱之分,所以(1)里面那个a(x)对应的二进制除数是110011。这个多项式是给定的哦~不是得出来的。这个二进制数在通信双方通信期间不变,相当于是一个上锁箱子的钥匙,这个钥匙是给定的,不能随便一把钥匙来开这个锁。生成多项式的原则是...

MODBUS通讯CRC校验码怎么算,有那位能告诉我呀
循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2...

关于CRC效验
其他回答 1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。 2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+...

C51 modbus rtu crc下面这段代码校验结果总是不对,请高手指教,不胜感激...
这个函数的问题在于:1、每次只能计算1个字节数据的CRC值,若有多个字节,须调用多次;2、字节数据,应把(uint address)改为(uchar address)3、应计算完全部字节数据的CRC值之后,再把CRC值高、低字节对调,所以代码中提前处理了低8位、高8位,导致结果错误。

我在学习modbus协议,遇到一个crc校验问题,我想知道00和01分别进行crc校 ...
这个不是MODBUS协议的问题,而是对CRC校验的概念不明确,CRC是循环的,全称是循环冗余校验码。针对你的问题,我们举这样一个例子,我们约定校验方式为“累加和为零”,这个简单好理解。假设现在要发送N个字节的数据,累加和为0xAB,按字节累加,抛弃进位,校验字是这样得到的 0x00-0xAB=0x55,发送方...

这是一个CRC校验码的matlab实现的程序 我运行不出来 不知道哪里有错误...
1 新建m文件,把函数function [ output, indicate] = crc_check( input, crc_no )贴进去保存;2 新建m文件,把函数function [ output ] = crc_add( input, crc_no )贴进去保存;3 在command window里输入 clear all;input=[1 1 0 0]CRC_Number=[3 8 12 16];for crc_index = 1:size...

相似回答