教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 用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

下载文档

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

网友最新关注

狐假虎威
我喜欢吃的西瓜
夏天的凤凰广场
夏日的凤凰广场
我的最爱
大树爷爷脱险记
妞妞上学
夏天的凤凰广场
小河边
冬冬是个懂事的孩子
夏天来了
难忘的生日
牛牛上学
小鸟受伤了
迷人的夏天
试论滑稽模仿与合理使用制度
证券局域网三层结构分析与研究
安徽省人大常委会机关计算机网络工程建设情况简介
关于儒家思想在中学班级管理中的运用
试论如何通过有效教学理论来促进学生的英语学习
网络安全的风险分析
利用注册表优化提高系统性能加快速度
分布式网络系统中的数据访问设计与优化
关于新时代大学英语创新教学模式分析
关于建国以来企业思想政治工作制度化建设的发展
试论家庭教育的举措及其重要性的研究
简析大学思想政治课教学的优化
试析在反思中改进与提升
粗集方法在KDD系统中的应用与研究
基于路由器的网络技术
《葡萄沟》教学设计之三
《静夜思》综合资料
《葡萄沟》第二课时教学设计之六
《葡萄沟》第二课时教学设计之五
《秋天的图画》教学设计
《纸船和风筝》教学设计
《葡萄沟》教学设计之五
《快乐的节日》教学设计
《葡萄沟》第二课时教学设计之四
《葡萄沟》第一课时教学设计之一
《葡萄沟》第二课时教学设计之三
《葡萄沟》教学设计之四
《葡萄沟》教学设计之六
《葡萄沟》第二课时教学设计之七
《葡萄沟》教学设计之七