高分请教,常用crc32多项式0xEDB88320,为什么最后一位可以为0?

clh213 2007-09-28 11:49:19
不是说crc多项式的最后一位和第一位都必须为1嘛?
另一个问题,就是pkzip文档里面介绍的crc多项式是0xdebb20e3,但是开源的zip代码都用的是0xEDB88320,不解阿不解
请求高人指点
...全文
3614 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
medie2005 2007-10-01
  • 打赏
  • 举报
回复 2
CRC-32的多项式可以是:


而,0xEDB88320=(11101101101110001000001100100000)B [二进制形式]。

将0xEDB88320的二进制形式反转,即最右的位变成最左的位,最左的位变成最右的位,那么,可以得到如下的二进制形式:

00000100110000010001110110110111

将得到的二进制形式与前面的CRC-32多项式对比,可以看到除了最高位之外,它们是一一对应的,而CRC多项式的最高位默认是1的。因此,可以用0xEDB88320来间接表示上面给出的CRC-32多项式。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧