教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 用C语言实现CRC校验计算

用C语言实现CRC校验计算

上传者:网友
|
翻新时间:2022-10-29

用C语言实现CRC校验计算

用C语言实现CRC校验计算 用C语言实现CRC校验计算 信息技术论文 更新:2006-4-8 阅读: 用C语言实现CRC校验计算

用C语言实现CRC校验计算

<?xml:nmespce prefix = o ns ="urn:schems-microsoft-com:office:office" />Clcul

tes CRC quickly using the tble-lookup method

作 者:董云 YUN DONG

工作单位:黄埔海关技术处工程师

通讯地址:广州市经济技术开发区志诚大道海关大楼

电话号码:020-82130556

邮政编码:510730

电子邮件: dy168@163.net

要:

简述CRC算法原理,给出一种新颖快速的查表计算方法,并给出用C语言编写的算法源程序。关键词:CRC、多项式、查表法 在编写数据传输程序时,数据容错是一个非常重要的问题。循环冗余位校验(Cyclicl Redundncy Check英文简称CRC)是目前运用非常广泛的一种数据容错方法,在数据传输,数据压缩等领域运用极其广泛。CRC的实现分为硬件和软件两种方法,其中软件实现的关键在于计算速度。如果单纯模拟硬件实现方法,则计算速度较慢。笔者在编制一个数据通讯软件中,运用了一种新颖的查表法计算CRC,速度很快,效果极佳。

组合值只有256种可能,因此可利用硬件模拟算法先算好它们的CRC值预先填入一张表中,该表的每一单元对应相对值的CRC。这样就可以通过查表法来计算CRC值,以便大大提高CRC运算的速度。下面给出用C语言编制的计算程序。

首先将CRC生成多项式及CRC值表定义为一个头文件CRC.H:

#define REV_CCITT 0x8408 //反转CCITT多项式

#define CRC16 0x8005 //CRC16多项式

#define REV_CRC16 0x

001 //反转CRC16多项式

unsigned short crc_tble[256]; //CRC值表

造表和查表法CRC计算函数。

#include "crc.h"

void mk_crctble(unsigned short genpoly)

unsigned short crc_tble[256];

unsigned short

ccnum=0;

unsigned short i,j,k;

for(i=0,k=0;i<256;i++,k++)

i<<=8;

for(j=8;j>0;j--)

if((i^ccnum)&0x8000)

ccnum=(

ccnum<<=

1)^genpoly;

else

ccnum<<=1;

i<<=1;

crc_tble[k]=

ccnum;

void crc_upd

te(unsigned short d

t

,unsigned short

ccnum)

ccnum=(

ccnum<<=

8)^crc_tble[(

ccnum>>

8)^d

t

];

注:genpoly为CRC多项式,

ccnum为累加器值(即为新的CRC值),d

t

为参与CRC计算的信息。

参考文献:

【1】顾慰文,《纠错码及其在计算机系统中的应用》,人民邮电出版社,1980。

【2】J.P.Roth,W.G.Bouricius: Progrmmed

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

我心目中的英雄
包包子
《大象的裤子》续编
小狗“花花”
一堂生动的法制课
我的梦想
日月潭
第一次玩火
打预防针
赖床的坏习惯
夏天
奶奶家屋后的大山
美丽的公园
小闹钟
去动物园看猴
银行职员的入党申请书
2011年五月大学生入党申请书
会计专业大学生入党申请书
共青团入团申请书范文
初三入团申请书
小学入团申请书
小学入团申请书
2011在校大学生入党申请书
在学习党章后的入党申请书
入团申请书怎么写
教师预备党员2011年入党转正申请书
五月最新大学生入党申请书
入团申请书格式
怎样写入团申请书
初中入团申请书
浅论在路基沉降处理中灌浆法的应用
试论声乐表演艺术的审美原理
浅谈音乐课中的计算机辅助教学
笛子演奏中的即兴性探讨
现代传媒与流行音乐文化——对超女现象的音乐社会学认识
浅谈儿童钢琴学习良好动机的形成
浅析音乐教育中的“愉悦性”
浅析音乐教育的德育作用
歌唱表演中要注意的几个问题
佛教对孔雀舞的影响
对宝卷念唱的意义阐述
浅谈手风琴的风箱运用
关于全面预算管理在高速公路经营企业的应用建议
数学对音乐发展的促进作用
浅谈新手上路应注意的问题
《坐井观天》教学设计
《纸船和风筝》教学设计
《太空生活趣事多》教学设计
《科利亚的木匣》教学设计二
《陶罐和铁罐》练习设计
《我要的是葫芦》教学设计
《我是什么》教学设计
《三个儿子》
《浅水洼里的小鱼》教学设计
《酸的和甜的》教学设计
《浅水洼里的小鱼》第二课时
《农业的变化真大》教学设计
《小柳树和小枣树》教学设计
《一株紫丁香》第二课时教学设计
《一株紫丁香》教学设计