[CRC可逆] 《CRC 算法原理及 C 语言实现》

[复制链接]
5004|5
 楼主| lxyppc 发表于 2012-10-30 16:53 | 显示全部楼层 |阅读模式
本帖最后由 lxyppc 于 2012-10-30 16:55 编辑

上传一本书,几年前我就是看着这本书入门的CRC计算
这本书应该也是根据别人的资料整理出来的,里面详细地说明了网上这些CRC计算代码是如何推导出来的,也说明了查表公式的原理
喜欢知其所以然的朋友可以看一下,并且动手推导一下
这书我也放在我的google网盘上,可以在线看https://docs.google.com/open?id=0B46Qjscx7LoPbkNzNXF6ZUVnQTQ

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| lxyppc 发表于 2012-10-30 17:03 | 显示全部楼层
本帖最后由 lxyppc 于 2012-10-31 09:45 编辑

上楼的文档中推导出式3-5直接就得到了代码如果想不明白的话我这里有一个简单推导的过程



下面是在线文档的位置
https://docs.google.com/document/d/1XLLIHphbWDcDzijAa4T0L6I4um4GRe9y1x8LdtzE9rs/edit

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| lxyppc 发表于 2012-10-30 17:10 | 显示全部楼层
书中使用了按位求余数的方法来推导CRC的计算公式,用的是多项式的方式
这里我用一个十进制数来说明按位求余的过程
待校验的数据为8375,多项式为7
根据CRC的算法,实际上就是求8375*10除以7的余数
计算过程中使用正常的10进制算法,计算过程如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| lxyppc 发表于 2012-10-31 10:14 | 显示全部楼层
其实不光十进制的数可以用这样的方式来按位求余数,16进制,256进制的数都可以用这样的方式来求
看到16进制,256进制,估计有人已经想到什么东西了
是的,16进制就是4Bit的数据,256进制就8Bit的数据
16进制相当于是CRC的查半表,一次计算4个bit
256进制相当于是CRC的查全表,一次计算8个bit
yinhaix 发表于 2015-5-25 14:47 | 显示全部楼层
hotpower 发表于 2017-6-6 22:40 来自手机 | 显示全部楼层
不错,是有大表和小表之分的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:代码发BBS不好看?你需要它 代码着色https://bbs.21ic.com/icview-135254-1-1.html

27

主题

2249

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部