欢迎来到天天文库
浏览记录
ID:39465841
大小:22.50 KB
页数:3页
时间:2019-07-04
《LRC校验算法C语言程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LRC校验算法C语言程序序言近日用到关于LRC检验算法,网上找了很多资料,其描述方式实在不敢恭维,为方便使用者特写下详细的计算过程,希望对你有所帮助。By厦大Jacky20120814LRC校验的数据发送格式起始字符(1个字符)+数据(2n个字符)+校验值(2个字符)+结束字符(2个:回车+换行)。LRC校验值计算数据(2n个字符)两两组成一个16进制的数值,然后将这些数值相加,将所得加值与256求模,然后用256减去所得模值,得到的数值即为检验值(即:sum%256后取反,再加1)。范例发送数值:01050BE7FF0009
2、数值分析:--起始字符;01050BE7FF00--数据值;09--检验值;其后还有回车换行(未标出)。数据值拆分:010508070000-->0x010x050x0B0xE70xFF0x00求和:0x01+0x05+0x0B+0xE7+0xFF+0x00=0x01F7;取模,取反:0x1F7%0x100=0xF70xF7取反0x08加1:0x08+1=0x09(校验值)C语言算法:uchardata[17]={0x3a,0x30,0x31,0x30,0x35,0x00,0x00,0x00,0x00,//no0x00,0x0
3、0,0x00,0x00,//status0x00,0x00,//LRCData0x0d,0x0a};//*******************************************************************************//语法格式:ucharLRC_Check(uchar*data,ucharlength);//实现功能:LRC数据检测算法程序//参数:无//返回值:LRC检验值//******************************************ucharLRC_
4、Check(uchar*data,ucharlength){uchari;uintk;ucharresult;ucharlrcdata[length];for(i=1;i0x40)lrcdata[i-1]=data[i]-0x41+10;elselrcdata[i-1]=data[i]-0x30;}k=0;for(i=0;i5、256;returnresult;}
5、256;returnresult;}
此文档下载收益归作者所有