LRC校验算法C语言程序.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LRC校验算法C语言程序

LRC校验算法C语言程序 序言 近日用到关于LRC检验算法,网上找了很多资料,其描述方式实在不敢恭维,为方便使用者特写下详细的计算过程,希望对你有所帮助。 By 厦大 Jacky LRC校验的数据发送格式 起始字符(1个字符)+数据(2n个字符)+校验值(2个字符)+结束字符(2个:回车+换行)。 LRC校验值计算 数据(2n个字符)两两组成一个16进制的数值,然后将这些数值相加,将所得加值与256求模,然后用256减去所得模值,得到的数值即为检验值(即:sum%256后取反,再加1)。 范 例 发送数值 :01050BE7FF0009 数值分析 :-- 起始字符;01050BE7FF00 -- 数据值; 09 -- 检 验值 ; 其后还有回车换行(未标出)。 数据值拆分:010508070000 --0x01 0x05 0x0B 0xE7 0xFF 0x00 求和: 0x01+0x05+0x0B+0xE7+0xFF+0x00 =0x01F7; 取模,取反: 0x1F7%0x100=0xF7 0xF7 取反 0x08 加1: 0x08+1=0x09 (校验值) C语言算法: uchar data[17]={0x3a,0x30,0x31,0x30,0x35, 0x00,0x00,0x00,0x00,//no 0x00,0x00,0x00,0x00,//status 0x00,0x00, //LRCData 0x0d,0x0a }; //******************************************************************************* // 语法格式:uchar LRC_Check(uchar *data,uchar length); // 实现功能:LRC数据检测算法程序 // 参数: 无 // 返回值: LRC检验值 //****************************************** uchar LRC_Check(uchar *data,uchar length) { uchar i; uint k; uchar result; uchar lrcdata[length]; for(i=1;ilength+1;i++) { if(data[i]0x40) lrcdata[i-1]=data[i]-0x41+10; else lrcdata[i-1]=data[i]-0x30; } k=0; for(i=0;ilength/2;i++) { k+=(lrcdata[2*i]*16+lrcdata[2*i+1]); } k=k%256; k=256-k; result=k%256; return result; }

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档