首页
社区
课程
招聘
关于CRC16的问题????[求助]
发表于: 2005-5-29 20:21 4145

关于CRC16的问题????[求助]

2005-5-29 20:21
4145
我看到很多资料上说CRC的除数多项式(什么CCITT,又是美国标准的)。

我理解16次幂的2进制多项式应该是17位;可是很多网上的代码实现时都是16位2进制数。到底是我错了,还是这些代码的作者错了????

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 174
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
CCITT的全称是International Telephone and Telegraph Consultative Committee
解释一下就是国际电话与电报顾问委员会

哪错偶8知道SORRY~!
2005-5-29 20:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你看到16位,实际是17位,因为最高位固定是1,所以省略了。
2005-5-30 18:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
楼上的大侠,就算如你所说,可是进行多项式除法时每次处理的位数就不同了,应该处理17位,却仅处理了16位。而且这样循环下去,结果得到的CRC码应该是不同的吧?!

再者,如果这样何必用16次幂呢?15次幂不是更工整吗?
2005-5-30 23:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
最初由 ax5491 发布
楼上的大侠,就算如你所说,可是进行多项式除法时每次处理的位数就不同了,应该处理17位,却仅处理了16位。而且这样循环下去,结果得到的CRC码应该是不同的吧?!

再者,如果这样何必用16次幂呢?15次幂不是更工整吗?


这个需要好好去理解。
除的过程其实就是用17位的,只不过最高位固定是1,试除的商假设是1,那么这个1和除数的最高位1,形成的数去减被除数,刚好最高位抵消了(而且一定是抵消),所以这个最高位也就一直感觉好像没有参加运算一样,一般也就被省略了。
所以除数实际上是17位。
对于CRC32就是33位。
2005-6-1 04:46
0
游客
登录 | 注册 方可回帖
返回
//