当前位置:首页 » 操作系统 » crc校验算法

crc校验算法

发布时间: 2022-02-05 08:57:54

‘壹’ 如何计算CRC校验码

我先给你举个例子:
已知信息位为1100,生成多项式G(x) = x3+x+1,求CRC码。
M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011
M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010
CRC码为: M(x)*x 3+R(x)=1100000+010 =1100010
其原理是:CRC码一般在k位信息位之后拼接r位校验位生成。编码步骤如下:
(1)将待编码的k位信息表示成多项式 M(x)。
(2)将 M(x)左移 r 位,得到 M(x)*xr 。
(3)用r+1位的生成多项式G(x)去除M(x)*xr 得到余数R(x)。
(4)将M(x)*xr 与R(x)作模2加,得到CRC码。

‘贰’ 如何计算CRC校验位

在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。CRC计算方法是:1、 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器。2、 把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该CRC寄存器中。3、 把CRC寄存器的内容右移一位,用0填补最高位,并检测移出位是0还是1。4、 如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,CRC寄存器与0XA001进行异或。5、 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。6、 重复步骤2和5,进行通讯信息帧下一个字节的处理。7、 将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换8、 最后得到的CRC寄存器内容即为:CRC校验码。

‘叁’ modbus中如何计算CRC效验(人工计算)

在CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。

CRC计算方法是:

1、 加载一值为0XFFFF的16位寄存器,此寄存器为CRC寄存器。

2、 把第一个8位二进制数据(即通讯信息帧的第一个字节)与16位的CRC寄存器的相异或,异或的结果仍存放于该CRC寄存器中。

3、 把CRC寄存器的内容右移一位,用0填补最高位,并检测移出位是0还是1。

4、 如果移出位为零,则重复第三步(再次右移一位);如果移出位为1,CRC寄存器与0XA001进行异或。

(3)crc校验算法扩展阅读:

计算步骤为:

(1).预置 16 位寄存器为十六进制 FFFF(即全为 1) ,称此寄存器为 CRC 寄存器;

(2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄

存器;

(3).检测相异或后的CRC寄存器的最低位,若最低位为1:CRC寄存器先右移1位,再与多项式A001H进行异或;若为0,则CRC寄存器右移1位,无需与多项式进行异或。

(4).重复步骤 3 ,直到右移 8 次,这样整个 8 位数据全部进行了处理;

(5).重复步骤 2 到步骤4,进行下一个 8 位数据的处理;

(6).最后得到的 CRC 寄存器即为 CRC 码。

‘肆’ crc校验码计算方法是什么

已知信息位为1100,生成多项式G(x) = x3+x+1,求CRC码。

M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011

M(x)*x3 / G(x) = 1110 + 010 /1011 R(x) = 010

CRC码为: M(x)*x 3+R(x)=1100000+010 =1100010

其原理是:CRC码一般在k位信息位之后拼接r位校验位生成。编码步骤如下:

(1)将待编码的k位信息表示成多项式 M(x)。

(2)将 M(x)左移 r 位,得到 M(x)*xr 。

(3)用r+1位的生成多项式G(x)去除M(x)*xr 得到余数R(x)。

(4)将M(x)*xr 与R(x)作模2加,得到CRC码。

(4)crc校验算法扩展阅读:

CRC校验码计算详解:采用CRC进行差错检验,生成多项式为G(X)=X4+X+1,信息码字为10110,则计算出的CRC校验码是:A. 0000 B. 0100 C. 0010 D.1111

符号表示假定:多项式和多项式的系数排列均用相同的符号表示,如

G(X)= X4+X+1

G(X)=10011

已知条件如下:

原码字记做M(X),即:M(X) = 10110

生成多项式记做G(X),即:G(X) = 10011

G(X)的最高阶数记做r,此处r = 4

‘伍’ CRC码的计算方法

给信息码补5个0,然后去除多项式,余数就是较验码

‘陆’ CRC16校验码如何计算

首先G(X)=X3+X+1可以得出G(x)=1011[G(x)中的1就是二进制第0位为1,X就是第一位为1,没有X^2,所以第二位为0,X^3则第三位为1。所以就是1011]

M(x)=0011M(x)*x3=0011000

M(x)*x3/G(x)的余数是101所以R(X)=101

CRC码为:M(x)*x3+R(x)=0011000+010=0011010

在计算机网络通信中

运用CRC校验时相对于其他校验方法就有一定的优势。CRC可以高比例的纠正信息传输过程中的错误,可以在极短的时间内完成数据校验码的计算,并迅速完成纠错过程,通过数据包自动重发的方式使得计算机的通信速度大幅提高,对通信效率和安全提供了保障。由于CRC算法检验的检错能力极强,且检测成本较低,因此在对于编码器和电路的检测中使用较为广泛。

以上内容参考:网络-CRC

‘柒’ CRC校验的算法有几种

具体的找些参考资料吧,一两句话也说不清楚
http://203.208.35.101/search?q=cache:-sMYoAuCJyAJ:www.powerprotocol.com.cn/CRC/crc_explain.pdf+CRC%E6%A0%A1%E9%AA%8C&hl=zh-CN&ct=clnk&cd=1&gl=cn&st_usg=ALhdy2_AJ0YjhnCWFMb5xtYPvXTzPgd_2Q

http://ke..com/view/575295.html

下面的还有程序实现:
http://www.dzkf.cn/html/qianrushixitong/2006/0905/529.html
http://chinaitpower.com/A200508/2005-08-07/186451.html
http://lunwen.eliu.info/js94.htm

‘捌’ CRC校验是怎么算的

你这个是CRC16要实现校验的话,你首先需要知道对方采用的是何种CRC公式不同的CRC公式 得到的校验码是不一样的在知道公式的情况下做crc表,然后按照crc算法,计算这8个字节的整体crc如果传输没有错误的话,最终的crc值是0也可以计算前六个的crc,然后和最后两个字节比较,效果是相同的。

‘玖’ CRC32的计算方法

CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样。通常,CRC的除数用生成多项式来表示。 最常用的CRC码及生成多项式名称生成多项式。

CRC-12:


(9)crc校验算法扩展阅读

通常的CRC算法在计算一个数据段的CRC值时,其CRC值是由求解每个数值的CRC值的和对CRC寄存器的值反复更新而得到的。这样,求解CRC的速度较慢。通过对CRC算法的研究,我们发现:一个8位数据加到16位累加器中去,只有累加器的高8位或低8位与数据相作用,其结果仅有256种可能的组合值。

因而,我们可以用查表法来代替反复的运算,这也同样适用于CRC32的计算。本文所提供的程序库中,函数crchware是一般的16位CRC的算法。mk-crctbl用以在内存中建立一个CRC数值表。

热点内容
如何查看java版本 发布:2024-05-05 16:45:05 浏览:494
转子绕组电动机控制柜如何配置 发布:2024-05-05 16:45:04 浏览:916
搭建游戏要多大服务器 发布:2024-05-05 16:44:16 浏览:345
云服务器ecs网站 发布:2024-05-05 16:35:55 浏览:562
c语言打印正方形 发布:2024-05-05 16:09:20 浏览:643
编程用箭头 发布:2024-05-05 15:54:21 浏览:794
步骤条源码 发布:2024-05-05 15:35:55 浏览:846
安卓拍光遇视频如何高清 发布:2024-05-05 15:23:20 浏览:934
linuxo文件 发布:2024-05-05 15:19:12 浏览:945
手机服务器地址或者域名 发布:2024-05-05 15:19:09 浏览:374