实在是弄不懂了,求个8位CRC校验和的C语言程序
生成多项式是自己制定的吗?网络需要传送的消息为二进制P 生成多项式为G(X) CRC校验为10010000的话
1。这个发送方的数据是 P00000000+1001000
2。发送方的消息是 p00000000异或100100000
两种说法结果是一样的
接受方用 同样的多项式和p10010000做除法 能够除尽 就表示没有差错
这个怎么能够整除的呢
P为商 Y为除数 X为被除数 Z为余数
就有PX+Z=Y的
这个要能整除X 应该是Y-Z 才行的把
将上面的关系代进来就是
P*G(X)+10010000=p00000000
这个应该是相减后 这个是能被整除的把
这个是书上错 还是我逻辑错啊
好郁闷啊
另外一种说法是 用相同的方式相除后 余数后和 CRC是相同 就表示没有差错
这个按上面的推导
P*G(X)+10010000+10010000=p00000000+10010000
余数应该是2倍 的CRC 才对啊 这个 怎么讲的呢
这个发送方的除数 可以确认是p0000000
这个接受方做同样的除法 如果是比对余数的话 应该也是p0000000
如果是整除的话 就应该是p0000000-CRC 这个减法应该是可以 改变发送放的数据的把
这个书上和网上 都是说接受方收到的信息 去除这个生成多项式的系数组成的二进制的码
有的说法更模糊 直接来了句 接受方用相同的方法去除 结果为0和结果1分为对和错
这个 实在是不知道是什么了,这个接受方到底是拿受到的信息除 还是剔除掉CRC尾部后 再做除法 脑袋晕了很长时间了。感觉这个 这个 前面讲的清楚的很 后面的交代怎么那么含混。写书的人怎么能这样呢
难道我得猜着读书 这个CRC 处理 又没有上下文的,我日 他妈哟
求解释
求代码
[ 本帖最后由 zhu224039 于 2012-11-25 01:41 编辑 ]