社区
硬件设计
帖子详情
CRC16校验算法8005和A001的问题
huangzhtao
2013-05-11 07:11:33
CRC16校验算法如果采用CRC16-IBM方法,生成多项式为x^16+x^15+x^2+1,表示为Ox8005,但是网上很多算法是基于0xA001的(也就是0x8005的逆向),请问这是为什么?
还有,能提供下0x8005的查表法计算的算法吗?
...全文
2256
2
打赏
收藏
CRC16校验算法8005和A001的问题
CRC16校验算法如果采用CRC16-IBM方法,生成多项式为x^16+x^15+x^2+1,表示为Ox8005,但是网上很多算法是基于0xA001的(也就是0x8005的逆向),请问这是为什么? 还有,能提供下0x8005的查表法计算的算法吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pltczw
2013-05-17
打赏
举报
回复
初始参数设为0xFFFF试试
jiangzhucao1989
2013-05-13
打赏
举报
回复
楼主问题解决没啊,我也很想知道问题答案,有结果分享下
C#计算
CRC
16
校验
码示例
遇到要做个
CRC
校验
,翻了一堆资料终于看明白了,内有详细注释,不是普通的词典法,是用
算法
计算出来的
CRC
,对于
CRC
16
-CCITT,只需替换公式即可 /*
CRC
16
实现原理 * *
CRC
16
| g(x)=x
16
+x15+x2+1 | 0x1,80,05 | 1,1000,0000,0000,0101 * * 由于在步骤进行了取反,这里也要把公式反过来 * 0x
8005
1000000000000101 * 0x
A001
1010000000000001 * * 1.置
16
位
CRC
寄存器
CRC
Full全为1 * 2.数据message[i]一个字节8位与
CRC
Full异或,结果存在
CRC
Full(作用是取反) * 3.
CRC
Full最低位存在
CRC
LSB,
CRC
Full右移一位(向低位),用0填补最高位 * 4.检查原最低位即
CRC
LSB: * 1:
CRC
Full与多项式0x
A001
异或 * 0:重复步骤 * 5.重复步骤和,直到右移8次,处理完整个message[i]字节 * 6.重复步骤到,进行下一个字节8位数据的处理,直到(message.Length) * 7.最后得到的
CRC
寄存器
CRC
Full即为此数据的
CRC
16
码 * * * */
CRC
16
校验
C#版源码
在网上找了很久
CRC
16
校验
的源码,发现有很多广告类作品。最后把VB6.0的转成C#的,给大家分享。希望大家喜欢。VB.NET版的已经传,搜索便有。
CRC
16
原理及
算法
附带两种程序
详细介绍
CRC
16
的原理及
算法
,给出行业中常见ModBus和DLMS程序代码。
CRC
16
校验
java版
之前传过一个,数据长了就不好用。这个好用。
crc
校验
字节型
算法
(1)预设一个
16
位寄存器,所有数位均为 1(即值为0x FFFF);待测数据组合 0x00 ~ 0x FF ;(2)该
16
位寄存器与待测数据进行“异或”运算,运算结果仍存该
16
位寄存器中 ;(3)将该
16
位寄存器右移一位,用 0 填补最高位 ;(4)检测移出位是 1 还是 0。若是 1,则生成多项式0x
A001
和该寄存器进行“异或”运算。若是 0,则返回步骤(3);(5)重复步骤(3)和(4),直到右移 8 次,这样待测数据的 8 位数据全部进行了处理 ;(6)将得到的
16
位寄存器的高、低字节进行交换,得到的
16
位寄存器内容即为
CRC
-
16
校验
码 ;(7)将待测数据依次设置为 0x00 ~ 0x FF(256 种),按照步骤(2)~(5)各计算一遍,得到的 256 个
CRC
-
16
校验
码组合在一起即为
CRC
-
16
查询表。
硬件设计
6,163
社区成员
11,290
社区内容
发帖
与我相关
我的任务
硬件设计
硬件/嵌入开发 硬件设计
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 硬件设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章