(1)什么是校验码? (2)常见的校验码有哪几种?分别介绍其原理。 (3)CRC码的计算方法?设传送信息M(x)有六位,100110B,选择的生成多项式位X3+X1+X0,则CRC码的校验位是什么?

admin2009-07-15  35

问题 (1)什么是校验码?
(2)常见的校验码有哪几种?分别介绍其原理。
(3)CRC码的计算方法?设传送信息M(x)有六位,100110B,选择的生成多项式位X3+X1+X0,则CRC码的校验位是什么?

选项

答案(1)保证机内信息的正确对计算机工作至关重要;由于器件质量不可靠、线路工艺不过关、远距离传送带来的干扰或受来自电源、空间磁场影响等因素,使得信息在存取、传送和计算过程中难免会发生诸如“1”误变为“0”的错误,计算机从硬件、软件上采取了很多措施提高机器抗干扰能力,一旦出错,要能及时检测并纠正错误,其中一种方法是对数据信息扩充,加入新的代码,它与原数据信息一起按某种规律编码后具有发现错误的能力,有的甚至能指出错误所在的准确位置使机器自动纠正,能起这种作用的编码叫“校验码”(Cheek Code)。 (2)校验码的种类很多,这里介绍常见的几种。 ①奇偶校检码 将每个数据代码扩展一个二进制位作校验位(Parity Byte),这个校验位取0还是取1的原则是;若是奇校验(Odd Parity),编码里含“1”尸的个数连同校验位的取值共有奇数个“1”;若是偶校验(Even Parity),连同校验位在内编码里含“1”的个数是偶数个。 ②交叉校验码 计算机进行大量字节传送时,如果不仅每一个字节有一个奇偶校验位——称横向校验,而且全部字节的同一位也设置了一个奇偶校验位——称纵向校验,对数据块代码的横向纵向同时校验,这种情况叫“交叉校验”。在通常情况下,并不知道一个数据块里有几个二进制位发生了错误,所以,几乎不把交叉校验看作是改正错误的办法,而是把它看作辨认错误的手段。然而与简单的奇偶校验相比,交叉校验要保险得多。 ③循环冗余校验码——CRC码(Cyclic Redundancy Check) 计算机信息传向远方终端或传到另一个计算中心时,信息沿一条通信线路一位位传送,这种通信方式叫串行通信。为了保证高效而无差错传送,对传送的数据块进行校验是必不可少的重要环节。串行传送的信息M(x)是一串k位二进制序列,在它被发送的同时,被一个事先选择的“生成多项式”相除,“生成多项式”长r+1位,相除后得到的余数就是校验位,它拼接到原k位有效信息后面即形成 CRC码。 (3)CRC码计算 传送信息时生成CRC码以及接收时对CRC码校验都要与生成多项式相除,这里除法是“模2运算”,即二进位运算时不考虑进位和借位。做模2除法时,取商的原则是当部分余数首位为1时商取 1;反之商取0。然后按模2减,求部分余数,这个余数不计高位。当被除数逐位除完时,最后余数的位数比除数少一位。该余数就是校验位。它拼接在有效信息后面组成CRC码。因为校验位扩充了传送部分的代码,所以这是一种基于冗余校验思想的校验方法。 生成多项式是4位=r+1,所以校验位r=3。现做模2除法,注意除时M(x),后加r个0。 [*] 所以CRC码的校验位是011。

解析
转载请注明原文地址:https://kaotiyun.com/show/dCNZ777K
0

最新回复(0)