1.1.3 计算机中常用的编码

计算机除了用于数值计算外,还要进行大量的文字信息处理,也就是要对表达各种文字信息的符号进行加工。例如,计算机和外设的键盘、(字符)显示器、打印机之间的通信都是采用字符方式输入/输出的。目前,计算机中最常用的两种编码是美国信息交换标准代码(ASCII码)和二-十进制编码(BCD码)。

1.美国信息交换标准代码(ASCII码)

ASCII(American Standard Code for Information-Interchange)码是美国信息交换标准代码的简称,主要用来给西文字符进行编码。它采用7位二进制数表示一个字符,包括32个标点符号,10个阿拉伯数字,52个英文大、小写字母和34个控制符号,共128个。编码与字符之间的对应关系如附录A所示。

在计算机系统中,存储单元的长度通常为8位二进制数(即一个字节),为了存取方便,规定一个存储单元存放一个ASCII码,其中低7位表示字母本身的编码,第8位(即bit7)用做奇偶校验位或规定为零(通常如此)。因此,也可以认为ASCII码的长度为8位。例如:

“8”的奇校验ASCII码为00111000B,偶校验ASCII码为10111000B;

“B”的奇校验ASCII码为11000010B,偶校验ASCII码为01000010B。

2.BCD码(二进制编码的十进制数)

十进制毕竟是人们最习惯的计数方式,在向计算机输入数据时,常用十进制数输入,但计算机只识别二进制数,因此每1位十进制数必须用二进制数表示。1位十进制数包含0~9个数码,必须用4位二进制数表示,这样就需要确定0~9与4位二进制数0000B~1111B之间的对应关系,其中较常用的8421BCD码规定了十进制数0~9与4位二进制数编码之间的对应关系,见表1-5。

表1-5 十进制数0~9与4位二进制数编码之间的对应关系

注:在BCD码中,不使用1010B(0AH)~1111B(0FH)。

计算机中存储BCD码有两种形式:压缩BCD码和非压缩BCD码。

(1)压缩BCD码

压缩BCD码用4位二进制数表示1位十进制数,一个字节可以表示2位十进制数。例如,10010111B表示十进制数97。

(2)非压缩BCD码

非压缩BCD码用8位二进制数表示1位十进制数,高4位总为0000,低4位的0000~1001表示0~9。例如,00001001B表示十进制数9。

前面介绍了在使用计算机时二进制数、十进制数、十六进制数、ASCII码、BCD码以及带符号数的表示等问题,这里要注意微型计算机能处理的数据只有二进制数,计算机并不认识什么正数、负数、BCD码、ASCII码等,计算机中数的表现形式只有二进制数,其他的数制和性质需要人们来进行分析与说明。例如,在某存储器中存放一个二进制数11111111B (0FFH),这个数有多大?这要看人们如何看了,如果是一个无符号数,就是255;如果是一个有符号数,就是-1;如果是个BCD码,就是一个无效的数;如果是个ASCII码,就代表“DEL”键的ASCII码值。