【新书推荐】4.2节 字符编码规则

本节内容:字符编码规则。

         ■字符编码规则:ASCII码、ANSI字符集、Unicode字符集。

         ■变形国标码:国标码是16位编码,高8位表示汉字符的区号,低8位表示汉字符的位号。

4.2.1 字符编码规则

计算机只能存储二进制数0和1,那么该如何表示字符呢?

ASCII码字符

ASCII是美国国家标准信息交换码的英文缩写。每个字符由一个唯一的7位整数表示。只使用了每个字节的低7位,共128个字符,对应标准美国键盘上的字母和符号。剩下的最高位被各种计算机用来创建私有字符集,比如IBM PC的扩展ASCII码。

ANSI字符集

如图4-1所示。美国国家标准委员会(ANSI)定义了一个8位的字符集,用于表示256个字符,前128个对应标准美国键盘上的字母和符号。后128个字符用于表示特殊字符,如其他语言字母表中的字母、重音符号、货币符号和分数等。MS-Windows Me/95/98使用ANSI字符集。

提示

         1.注意观察ASCII表,常用的ASCII字符对应的16进制数值需要熟记于心。如响铃字符的ASCII值07H,退格字符08H,TAB制表符09H,换行符0AH,回车符0DH,空格符20H,CTRL+B 的ASCII值02H,CTRL+C的ASCII值03H。

         2.大写字母“A~Z”的ASCII值为41H~5AH,小写字母“a~z”的ASCII值为61H~7AH,数字符“0~9”的ASCII值为30H~39H。

         3.可见字符的ASCII值从20H开始,到7EH结束。

Unicode标准

计算机软件中表示各种不同国家的语言有上百种编码方案,比较混乱。由此创建Unicode标准作为定义字符和符号的统一方法。Unicode标准定义了所有主要语言中使用的字母、符号及标点。Unicode有三种编码形式:

UTF-8:ASCII码在UTF-8编码中占用一个字节,其字节值和ASCII码值相同。所有Unicode字符都可以用一种变长的编码系统表示。

UTF-16:用于访问效率和存储空间并重的环境中。例如:Windows NT/2000/XP使用UTF-16编码,每个字符用16个二进制数据位编码。

UTF-32:用于不太关心存储空间的环境。每个字符都使用32个二进制数据位编码,宽度固定。

                                                                                                                         图4-1 128字符ASCII表

4.2.2 变形国标码

有了ASCII码,计算机可以处理数字、字母等字符,但是并不能处理汉字符。

我们国家1981年5月对六千多个常用汉字制定了交换码的国家标准,即GB2312-80《信息交换用汉字编码字符集—基本集》。该标准规定了汉字信息交换的基本汉字符和一般图形字符,共计7445个,其中汉字分成两个等级共计6763个。该标准同时也给定了它们的二进制编码,即国标码。后来的字符集GBK收录20912个汉字,最新的字符集GB18030收录27533个汉字。

国标码是16位编码,高8位表示汉字符的区号,低8位表示汉字符的位号。实际上,为了给汉字符编码,该标准把代码表分成94个区,每个区94个位。区号和位号都从21H开始。一级汉字安排在30H区至57区,二级汉字安排在58H至77区。

机内码是汉字在计算机内部使用的编码。汉字的机内码采用变形国标码,其变换方法为:变形国标码=国标码+8080H,即将两个字节的最高位由0改1,其余7位不变。

区位码转换为国标码的方式:国标码是由区位码稍作转换得到。先将十进制区码和位码转换为十六进制的区码和位码,再将这个代码加上2020H,就得到国标码。

举例

         某汉字区号为34,位号为56。区位码:3456。

         34 = 0010 0010B = 22H

         56 = 0011 1000B = 38H

国标码:2238H + 2020H = 4258H

变形国标码:4258H + 8080H = C2D8H

本文摘自编程达人系列教材《X86汇编语言基础教程》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值