
LRC校验算法C语言程序.doc
4页LRC校验算法C语言程序序言近日用到关于LRC检验算法,网上找了很多资料,其描述方式实在不敢恭维,为方便使用者特写下详细的计算过程,希望对你有所帮助By厦大Jacky20120814LRC校验的数据发送格式起始字符(1个字符)+数据(2n个字符)+校验值(2个字符)+结束字符(2个:回车+换行)LRC校验值计算数据(2n个字符)两两组成一个16进制的数值,然后将这些数值相加,将所得加值与256求模,然后用256减去所得模值,得到的数值即为检验值(即:sum%256后取反,再加1)范例发送数值:01050BE7FF0009数值分析:--起始字符;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,0x00,0x00,0x00,//status0x00,0x00,//LRCData0x0d,0x0a};//*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//*L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L**L*//语法格式:ucharLRC_Check(uchar*data,ucharlength);//实现功能:LRC数据检测算法程序//参数:无//返回值:LRC检验值ucharLRC_Check(uchar*data,ucharlength){uchari;uintk;ucharresult;ucharlrcdata[length];for(i=1;i












