C#计算CRC16校验码示例

时间:2014-11-28 11:18:17
【文件属性】:

文件名称:C#计算CRC16校验码示例

文件大小:43KB

文件格式:RAR

更新时间:2014-11-28 11:18:17

C# CRC CRC16 源码

遇到要做个CRC校验,翻了一堆资料终于看明白了,内有详细注释,不是普通的词典法,是用算法计算出来的CRC,对于CRC16-CCITT,只需替换公式即可 /* CRC16实现原理 * * CRC16 | g(x)=x16+x15+x2+1 | 0x1,80,05 | 1,1000,0000,0000,0101 * * 由于在步骤<2>进行了取反,这里也要把公式反过来 * 0x8005 1000000000000101 * 0xA001 1010000000000001 * * 1.置16位CRC寄存器CRCFull全为1 * 2.数据message[i]一个字节8位与CRCFull异或,结果存在CRCFull(作用是取反) * 3.CRCFull最低位存在CRCLSB,CRCFull右移一位(向低位),用0填补最高位 * 4.检查原最低位即CRCLSB: * 1:CRCFull与多项式0xA001异或 * 0:重复步骤<3> * 5.重复步骤<3>和<4>,直到右移8次,处理完整个message[i]字节 * 6.重复步骤<2>到<5>,进行下一个字节8位数据的处理,直到(message.Length) * 7.最后得到的CRC寄存器CRCFull即为此数据的CRC16码 * * <取反避免了普通比特型算法使用左移后寄存器最低位要从下一个字节获取的麻烦> * */


【文件预览】:
WindowsFormsApplication1
----WindowsFormsApplication1()
--------bin()
--------Form1.Designer.cs(3KB)
--------Program.cs(505B)
--------obj()
--------Form1.cs(3KB)
--------Form1.resx(6KB)
--------WindowsFormsApplication1.csproj(4KB)
--------Properties()
----WindowsFormsApplication1.sln(914B)
----WindowsFormsApplication1.suo(21KB)

网友评论

  • 感谢分享,感谢分享!
  • 没有实质性作用,功能简单不建议使用
  • 谢谢分享,有参考价值
  • 唉 下载过了 还是再试试
  • 谢谢分享,有参考价值。
  • 没有想象中的那么实用。计算结果和工具算出来的也不一样
  • 谢谢分享,帮助了我的开发学习
  • 程序能运行,但是得到的结果不一样
  • 谢谢,有参考价值。
  • 功能太简单,不值这个分数
  • 一开始我以为是没用的,后来调试跟踪了几次,duang的一下就有用了,感谢LZ
  • 可以有结果,虽然跟我想要的结果不一样,还是谢谢!
  • 很不错 帮我了大忙
  • 程序能运行,但不是我需要的。不过还是要感谢楼主
  • 还行,但不是我要的多项式
  • 感谢楼主,用在项目中了,有用
  • 随便点了几个就报错了,算不出来
  • 不错,帮了我的忙
  • 还不错,不过跟我们公司算出来的CRC16结果不一样。
  • 代码完整,非常详细,可以运行。给你个赞
  • 还可以,有参考价值
  • 从网上找了很多,这个例子最好用,谢谢
  • 可以参考,但是好像结果不对
  • 不错,稍作修改可用。结果也符合。
  • 能用,是很值得 参考的代码。。。