购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 字符的编码

现代计算机不仅处理数值领域的问题,而且处理大量非数值领域的问题,如字母、数字、符号及控制符号。这些符号在计算机中也是用二进制表示,用于表示字符的二进制编码称为字符编码。

2.4.1 ASCII码

ASCII码(American standard code for information interchange),即美国标准信息交换码,是国际上最为流行的字符信息编码方案,被国际标准化组织(ISO)指定为国际标准。

ASCII码最初只有 7 位。7 位ASCII码采用二进制数编码,包括 10 个十进制数码(0~9)、52 个大小写英文字母、33 个字符和运算符、33 种控制字符(如回车、删除等),一共 128个不同的符号。7 位ASCII码字符编码表见表 2-2。

表 2-2 ASCII码字符编码表

7 位ASCII码字符编码表具有如下特点:

①ASCII码字符编码表中的每个字符的二进制编码为 7 位,因此一共有 2 7 =128 种不同字符的编码。通常一个ASCIL码占用一个字节(即 8 bit),其最高位为“0”。例如,“Red”的ASCII码编码见表 2-3。

表 2-3 “Red”的ASCII码编码

②ASCII码字符编码表中包括了 33 种控制字符,二进制码值为 0000000~0011111 和 1111111(即NUL~US和DEL)称为控制字符,位于表的左边两列和右下角位置上。控制字符主要用于打印或显示时的格式控制、对外围设备的操作控制、进行信息分隔、在数据通信时进行传输控制等用途。其功能解释见表 2-4。

表 2-4 控制码

③ASCII码字符编码表中包括了 95 个普通字符,称为图形字符,为可打印或可显示字符,包括 52 个英文大小写字母,10 个数字 0~9 和 33 个其他标点符号、运算符号。数字字符、大写字母字符、小写字母字符的ASCII码值是按照从小到大 0~9、A~Z、a~z的顺序排列的,且小写字母比大写字母的码值大 32。

例如:

“A”字母字符的编码是 1000001,对应的十进制数是 65,对应的十六进制是 41H;

“B”字母字符的编码是 1000010,对应的十进制数是 66,对应的十六进制是 42H;

“a”字母字符的编码是 1100001,对应的十进制数是 97,对应的十六进制是 61H;

“0”数字字符的编码是 0110000,对应的十进制数是 48,对应的十六进制是 30H;

“SP”空格字符的编码是 0100000,对应的十进制数是 32。

随着计算机技术的快速发展,7 位ASCII码逐渐无法满足需求,8 位ASCII码应运而生。8 位ASCII码称为扩展二进制数编码,是在保留原有 7 位编码的基础上,将最高位(最左)设置为校验位。因此,8 位ASCII码总共可以表示 256 个不同的字符,包括 128 个基本ASCII字符(与 7 位ASCII码相同),以及 128 个扩展ASCII字符。扩展ASCII字符分为两部分:通用字符和图形符号。通用字符包括拉丁文、希腊文、特殊符号等,共计 128 个;图形符号则包括汉字、日文假名、韩文等,共计 128 个。由此可见,八位ASCII码能够满足多种语言和特殊字符的需求。随着互联网的普及,八位ASCII码在全球范围内得到了广泛应用。

2.4.2 BCD码

BCD(binary coded decimal)码是二进制编码的十进制数,有 4 位BCD码、6 位BCD码和扩展的BCD码三种。

1.8421 码

8421 码又称为BCD码,是十进制代码中最常用的一种。8421 码用 4 位二进制数表示一个十进制数字,每一位二进制代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右的每一位“1”位权依次为 8、4、2、1,它只能表示十进制数的 0~9 十个字符(0000~1001)。为了能对一个多位十进制数进行编码,需要有与十进制数的位数一样多的 4 位组。

2.扩展BCD码

由于 8421 码只能表示 10 个十进制数,所以在原来 4 位BCD码的基础上又产生了 6 位BCD码。它能表示 64 个字符,其中包括 10 个十进制数、26 个英文字母和 28 个特殊字符。

但在某些场合,还需要区分英文字母的大小写,这就提出了扩展BCD码,即EBCDIC(extended binary coded decimal interchange code)码,是美国IBM公司在它的各类机器上广泛使用的一种信息代码,是字母或数字字符的二进制编码。一个字符的EBCDIC码占用一个字符,用八位二进制码表示信息,最多可以表示出256 个不同代码。EBCDIC码是常用的编码之一,IBM及UNIVAC计算机均采用这种编码。

2.4.3 Unicode编码

扩展的ASCII码可以提供 256 个字符,但是并不足以表示世界各地的文字编码。Unicode就是为了解决传统的字符编码方案的局限而产生的,它能够为每种语言中的每个字符都设定统一且唯一的二进制编码,从而满足了跨语言、跨平台进行文本转换、处理的要求。

Unicode是一种 16 位的编码,能够表示 65 000 多个字符或符号。目前,世界上的各种语言一般使用的字母或符号都在 3 400 个左右,所以Unicode编码可以用于任何一种语言。Unicode编码与现在流行的ASCII码完全兼容,二者的前 256 个符号是一样的。Unicode编码共有三种具体实现,分别为utf-8、utf-16、utf-32,其中utf-8 占用 1 到 4 个字节,utf-16 占用 2 或 4 个字节,utf-32 占用 4 个字节。目前,Unicode编码在全球范围的信息交换领域均有广泛的应用。 FFlnxCYN+XJvRh6/uYEqF6MwWIecpZDcsqqJeQLEj4vcmZyJ9+2ccPxF1sDuTsRj

点击中间区域
呼出菜单
上一章
目录
下一章
×