打印

请求CRC相关解惑(Hotpower能来看更好)

[复制链接]
4259|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forrest11|  楼主 | 2012-12-19 17:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请看下面图片,CRC校验码产生本来很简单,但按照下图的要求,Byte交换,取补码(或反码)。我怎么都不能从C0FC产生0EF8, 也不能从C0FC0EF8产生470F,求帮助。



相关帖子

沙发
txcy| | 2012-12-19 23:00 | 只看该作者
Hotpower最近似乎很忙

使用特权

评论回复
板凳
dfsa| | 2012-12-19 23:15 | 只看该作者
这个应该是Hotpower的专长

使用特权

评论回复
地板
火箭球迷| | 2012-12-19 23:26 | 只看该作者
说的详细点

使用特权

评论回复
5
forrest11|  楼主 | 2012-12-20 00:49 | 只看该作者
本帖最后由 forrest11 于 2012-12-20 00:51 编辑

我的理解,大概的意思是:
当多项式为:X16+X12+X5+1(CRC16_CCITT),初值为FFFF时,
对输入数据进行计算(LSB优先,这里的LSB应该是Bit而不是Byte,但不确定),然后对输出结果Byte交换,且取反(或取补),即得到CRC校验值。
为了验证此校验值是否正确,可用上述方法同样将数据+CRC计算一次,得到的结果为0x470F即为正确。
然后举例:0xC0FC经过计算得到0EF8;C0FC0EF8经过计算得到0x470F
可我怎么都算不出来。

使用特权

评论回复
6
forrest11|  楼主 | 2012-12-20 15:35 | 只看该作者
自己知道了,谢谢!结贴。

使用特权

评论回复
7
gxgclg| | 2012-12-20 23:14 | 只看该作者
这个有点深奥

使用特权

评论回复
8
hotpower| | 2015-10-23 12:50 | 只看该作者
我下午穷举一下

使用特权

评论回复
9
hotpower| | 2018-12-30 01:40 | 只看该作者

使用特权

评论回复
10
hotpower| | 2018-12-30 01:41 | 只看该作者
2017年我升级了hotcrc,可以理论上**任意CRC了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人博客:http://blog.**/forrest11

37

主题

1093

帖子

14

粉丝