C#和C实现通过CRC-16 (Modbus)获取CRC值并校验数据(代码)
2016-10-21 16:13
691 查看
CRC的全称为CyclicRedundancyCheck,中文名称为循环冗余校验。它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制。实际上,除数据通信外,CRC在其它很多领域也是大有用武之地的。例如我们读软盘上的文件,以及解压一个ZIP文件时,偶尔会碰到“BadCRC”错误,由此它在数据存储方面的应用可略见一斑。
差错控制理论是在代数理论基础上建立起来的。这里我们着眼于介绍CRC的算法与实现,对原理只能捎带说明一下。若需要进一步了解线性码、分组码、循环码、纠错编码等方面的原理,可以阅读有关资料。
利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。
下面提供C#实现的代码:
下面提供C实现的代码:
相关文章推荐
- CRC代码算法实现-CRC-16 MODBUS代码实验
- c#代码实现GPS数据的有效性校验
- 通过java代码调取C#应用程序并实现数据交互
- CRC-16校验C#代码
- Matlab通过sina web接口获取个数即时股票数据函数实现代码
- C#代码——CRC-16校验
- CRC-32 CRC-16 校验算法 C# 代码
- CRC-16校验C#代码
- C# Socket实现通过公共服务程序获取数据的例子
- 在VC++通过汇编实现获取代码运行时间
- C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结
- 手机电子书UMD数据格式实现代码(C#版)
- JS调用C#后台代码---JS实现DataGrid“全选”、“反选”、调用后台代码批量删除数据
- 手机电子书UMD数据格式实现代码(C#版)
- C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结
- C# CRC 16 交验代码
- asp.net/c#代码实现excel to mssql数据导入
- 手机电子书UMD数据格式实现代码(C#版)
- 通过Hyperic-hq产品的基础包sigar.jar来实现服务器状态数据的获取
- DataView数据视图实现数据过滤,排序(代码调试通过)