C#计算CRC16校验码示例
遇到要做个CRC校验,翻了一堆资料终于看明白了,内有详细注释,不是普通的词典法,是用算法计算出来的CRC,对于CRC16-CCITT,只需替换公式即可 /* CRC16实现原理 * * CRC16 | g(x)=x16+x15+x2+1 | 0x1,80,05 | 1,1000,0000,0000,0101 * * 由于在步骤进行了取反,这里也要把公式反过来 * 0x8005 1000000000000101 * 0xA001 1010000000000001 * * 1.置16位CRC寄存器CRCFull全为1 * 2.数据message[i]一个字节8位与CRCFull异或,结果存在CRCFull(作用是取反) * 3.CRCFull最低位存在CRCLSB,CRCFull右移一位(向低位),用0填补最高位 * 4.检查原最低位即CRCLSB: * 1:CRCFul l与多项式0xA001异或 * 0:重复步骤 * 5.重复步骤和,直到右移8次,处理完整个message[i]字节 * 6.重复步骤到,进行下一个字节8位数据的处理,直到(message.Length) * 7.最后得到的CRC寄存器CRCFull即为此数据的CRC16码 * * * */
下载地址
用户评论
没有实质性作用,功能简单不建议使用
谢谢分享,有参考价值
唉 下载过了 还是再试试
唉 下载过了 还是再试试
谢谢分享,有参考价值。
谢谢分享,帮助了我的开发学习
程序能运行,但是得到的结果不一样
功能太简单,不值这个分数
一开始我以为是没用的,后来调试跟踪了几次,duang的一下就有用了,感谢LZ
可以有结果,虽然跟我想要的结果不一样,还是谢谢!