c语言 字符串校验算法,LRC校验算法C语言程序.doc

本文详细介绍了LRC校验算法的计算过程,并提供了C语言实现的示例代码。通过起始字符、数据、校验值和结束字符构成数据发送格式,通过将数据两两组合成16进制数并求和,再进行取模和取反运算,得出校验值。
摘要由CSDN通过智能技术生成

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,//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值