CRC校验是什么意思

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

寄给朋友

请问CRC校验是什么意思,为什么我安装某个软件时,它提示“installer crc invalid呢?怎样可以关闭呢?

---

作者:xyty时间:2002-12-309:49:00来自:211.146.xxx.xxx

正确指数:0作者:shock时间:2002-12-3010:17:00来自:61.172.xxx.xxx

CRC的原理。

(由于CRC实现起来有一定的难度,所以具体怎样用它来保护文件,留待下一节再讲。)

首先看两个式子:

式一:9/3=3(余数=0)

式二:(9+2)/3=3(余数=2)

在小学里我们就知道,除法运算就是将被减数重复地减去除数X次,然后留下余数。

所以上面的两个式子可以用二进制计算为:(什么?你不会二进制计算?我倒~~~)

式一:

1001-->9

0011--->3

---------

0110-->6

0011--->3

---------

0011-->3

0011--->3

---------

0000-->0,余数

一共减了3次,所以商是3,而最后一次减出来的结果是0,所以余数为0

式二:

1011-->11

0011--->3

---------

1000-->8

0011--->3

---------

0101-->5

0011--->3

---------

0010-->2,余数

一共减了3次,所以商是3,而最后一次减出来的结果是2,所以余数为2

看明白了吧?很好,let’s go on!

二进制减法运算的规则是,如果遇到0-1的情况,那么要从高位借1,就变成了(10+0)-1=1

CRC运算有什么不同呢?让我们看下面的例子:

这次用式子30/9,不过请读者注意最后的余数:

11110-->30

1001--->9

---------

1100-->12(很奇怪吧?为什么不是21呢?)

1001--->9

--------

101-->3,余数-->the CRC!

这个式子的计算过程是不是很奇怪呢?它不是直接减的,而是用XOR的方式来运算(程序员应该都很熟悉XOR吧),最后得到一个余数。

对啦,这个就是CRC的运算方法,明白了吗?CRC的本质是进行XOR运算,运算的过程我们不用管它,因为运算过程对最后的结果没有意义;我们真正感兴趣的只是最终得到的余数,这个余数就是CRC值。

进行一个CRC运算我们需要选择一个除数,这个除数我们叫它为“poly”,宽度W就是最高位的位置,所以我刚才举的例子中的除数9,这个poly1001的W是3,而不是4,注意最高位总是1。(别问为什么,这个是规定)

如果我们想计算一个位串的CRC码,我们想确定每一个位都被处理过,因此,我们要在目标位串后面加上W个0位。现在让我们根据CRC的规范来改写一下上面的例子:

Poly=1001,宽度W=3

位串Bitstring=11110

Bitstring+W zeroes=11110+000=11110000

11110000

相关文档
最新文档