crc校验算法程序c语言实现,CRC校验的快速算法的C语言实现

crc校验算法程序c语言实现,CRC校验的快速算法的C语言实现CRC校验的快速算法的C语言实现CCR校验的快速算法的C语言实现颜国谷(中原油田信息中心470)501摘要:ccR循环冗余校验算法,是一种在数据存储和数据通讯领域中使用十分广泛的编码算法,具有强力的检错和纠错能力,并且开销比较小。本文从cc本原理出发,介绍了CC速算法的原理,以c言为实现手段,实现了该算法。R基E快语关键字:ccR校验快速cc并行ccc言…

大家好,欢迎来到IT知识分享网。

CRC校验的快速算法的C语言实现

CC R校验的快速算法的C语言实现

颜国谷 (中原油田信息中心 4 70 ) 5 0 1

摘要:c c R循环冗余校验算法,是一种在数据存储和数据通讯领域中使用十分广泛的编码算法,具有强力的检错和纠错能

力,并且开销比较小。本文从 c c本原理出发,介绍了C C速算法的原理,以c言为实现手段,实现了该算法。 R基 E快语 关键字:c c R校验快速 c c并行c c c言 R R语

1引言 .

在数据存储和数据通讯领域,为了保证数据的正确 .就不得不采用检错或者纠错的编码手段。在诸编码方式中,CR C是其中著名的一种,其特点是 .检错能力极强,开销小,易于用编码器及检测电路实现:从其检错能力来看,它所不能

C C成多项式进行模 2,即: R生除

!生

G() x

! M xx ̄生:—(—x )

G x ()

G() z

( 2—2

根据式 2 .可以得到: -1

=++ ㈣ t (—3 2 )

根据,根据相同的序列按位异或的结果为0 .因此 .式

发现的错误的几率仅为 0 0 4%以下。从性能上和开销上考 2 3就可以化为: 07 -的 虑,均远远优于奇偶校验及算术和校验等方式。因而,在数

:

据存储和数据通讯领域,CR都被广泛运用例如,通讯协 c议 X 2的F S帧检错序列 )用的是 C C C T 5 C (采 R – ClT.AR、L A J H等压缩工具软件采用的是 CR 3 .磁盘驱动器的读写采用了 C2

C C通用的图像存储格式 G F IF也都使用 C C为检 R 1 6 I、TF等 R作

(—4) 2

从中就可以看出接收端计算的结果是整除的,没有余数,这也就是 C C接收端判断数据是否正确的标准。 R在

因此整个CR计算过程就是将要发送的信息左移k .然 C位

后将与生成多项式进行模 2除法,等到的 k长的余数就是 C C位 R

校验信息。

错手段。

2C . RC原理

码序列在发送端 .根据已定的生成多项式 .按照一定的规则 .产生一段 k的校验码 (位即CR码 ),附在要发送的信息 c后 .构成一个新的长为 (+ )位的二进制码序列再发送给 nk

C C R的标准是多种多样的,一般是依据生成多项式的长度

R一 .C C 6 CR C校验是一种线性编码理论,对于要传输 n二进制分为C C 8 R 1等 .以下就是几种典型的生成多项式: 位

C (一8:+++1

C尺一1 x+x’ +1 C 6: +

C RC一3工2+ 2: 3 +x+∞ + + +“+。 + + +++x+l

接收端。在接收端则根据接收的数据部分和C C R之间是否预

定的关系,从而判定在传输过程中是否出现传输错误。 CR C的计算是一种模 2除法,与普通的除法主要的差别的是在计算过程中减法 .使用的不借位/位的模 2运算 .等进加

同于按位异或。

3 C C 1快速算法原理 .R -6

在工程运用中 .基于上面介绍的按照模 2法,计算 CR 除 C校验算法的工作量是很大的,特别是对于越长的序列 .因为没 1数据就要进行一个计算。例如一个以太网数据包的包长为

二进制序列数据流,可以用模2多项式表示 .多项式的系

数就是序列的值。如 1 1 1可以表示为: 0 O 1

1 +0×+1 +0X+1 +1× × X

最大为1 1b t .计算这样的~个数据包需要的时间和计算量 ye 58

的花费很多,找到一种快速的C C算方法 (成并行CR算 R计也 C法 ) .对于工程应用是十分有必要的。

可以采用增加每次C C R的输入的数据长度来简化运算需要的时间和运算量 .一般使用 1ye bt输入数据代替 1 t b的输入。

以C C 8 R一为例 .如果要计算~个 1b的数据的C C 8 i 6t R一。

1bt据,为: i 6数记

假设要传输的n长度的二进制序列表示为:位

肘(= ) 。

使用的C C成多项式,记为: R生

G(=&,

M (: ()+ () M× x M。x其CM,) (就是第1 y 8t t6数据, b

(是第 2ye数据。 ) bt的

如果将二进制序列和生成多项式 .进行下面的计算:

M () x x ̄ x

=

那么按照前面介绍的C C R原理 .计算过程 .

㈣+ (~1 2 )

得到的月j就是CR校验码

它的长度应该是比生成多项 () r C

式少~位.要发送的数据就是: ()+R X )。

在接收端 .对数据进行校验就是将接收到数据和已定的

M ) x ( ‘ xx G()= x

G() x

l (一1 j。

假定 .

1 8科学中国人 2

2 1年第7 00期

1-1990-png_6_0_0_0_-1_847_1171_846_1170-1440-0-0-1440.jpg

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15184.html

(0)
上一篇 2024-02-20 08:15
下一篇 2024-02-20 18:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信