(1)CRC码
串行传送的信息M(X)是一串k位二进制序列,在它被发送的同时,被一个事先选择的“生成多项式”相除,“生成多项式”长r+1位,相除后得到r位余数就是校验位,它拼接到原k位有效信息后面即形成CRC码。CRC码到达接收方时,接收方的设备一方面接收CRC码,一方面用同样的生成多项式相除,如果正好除尽,表示无信息差错,接收方去掉CRC码后面r位校验位,收下k位有效信息;当不能除尽时,说明有信息的状态位发生了转变,即出错了。一般要求重新传送一次或立即纠错。
(2)CRC码计算
传送信息时生成CRC码以及接收时对CRC码校验都要与“生成多项式”相除,这里除法是“模2运算”,即二进位运算时不考虑进位和借位。作模2除法时,取商的原则是当部分余数首位为1时商取1,反之商取0,然后按模2减,求部分余数。这个余数不计高位。当被除数逐位除完时,最后余数的位数比除数少一位。该余数就是校验位。它拼接在有效信息后面组成CRC码。因为校验位扩充了传送部分的代码,所以这是一种基于“冗余校验”的思想的校验办法。
(3)生成多项式
CRC码是M(X)除以某一个预先选定的多项式后产生的,所以这个多项式叫生成多项式。并不是任何一个r+1位的编码都可以作生成多项式用,它应能满足当任何一位发生传送错误时都能使余数不为0,并且不同位发生错误时应当使余数也不同,这样不但能检错而且能推断是哪一位出错,从而有利于准确的纠错。有两个生成多项式,其检错率很高。
X16+X15+X2+1
X16+X12+X6+1
6.非数值数据的表示方法
计算机中数据的概念是广义的,机内除有数值数据之外,还有文字、符号、图象、语言和逻辑信息等等,因为它们也都是0、1形式存在,所以称为非数值数据。
(1)字符数据
字符数据主要指数字、字母、通用符号、控制符号等,在机内它们都被变换成计算机能够识别的二进制编码形式。国际上普遍采用的一种编码是美国国家信息交换标准代码(American Standard Code for Information Interchange),简称ASCII码。ASCII码选择了四类共128种常用的字符:①数字0~9。②字母。
③通用符号。④动作控制符。
(2)逻辑数据
逻辑数据是指计算机不带符号位的一位二进制数。