内容正文:
专题五 数字化信息编码与数据表示(二)
[考纲要求]
4.理解计算机数制与机内编码形式,掌握数制转换(仅限整数)
[课时安排]
2课时
[知识梳理]
一.原码、反码和补码
1.原码
定义:最高位为符号位:0 表示正数,1 表示负数,其余位为数值的绝对值。
示例:
+5 的 8 位原码:00000101
-5 的 8 位原码:10000101
特点:
直观易读:符号位与数值位分离,便于人类理解。
双零问题:存在 +0(00000000)和 -0(10000000),导致逻辑复杂性。
运算复杂:加减法需单独处理符号位,硬件实现复杂。
2.反码
定义:正数:与原码相同。负数:符号位不变,数值位逐位取反。
示例:
+5 的反码:00000101
-5 的反码:11111010
特点:
简化减法:减法可转换为加法,但需处理 循环进位(最高位进位需加到最低位)。
双零问题依然存在:+0(00000000)和 -0(11111111)。
应用局限:现代计算机中极少使用。
3.补码
定义:正数:与原码相同。负数:反码加 1。
示例:
+5 的补码:00000101
-5 的补码:11111011
特点:
唯一零表示:00000000,彻底解决双零问题。
运算统一性:加减法直接进行,无需特殊处理符号位。
扩展数值范围:8 位补码可表示 -128(10000000)至 +127(01111111)。
转换方法:
十进制转补码:
正数:直接转换为二进制。
负数:取绝对值二进制 → 取反 → 加 1。
示例:-5 → 5(00000101)→ 取反(11111010)→ 加 1(11111011)。
补码转十进制:
最高位为 0:直接转换为十进制。
最高位为 1:取反 → 加 1 → 转换为十进制后加负号。
溢出处理:
正溢出:结果超出正数范围(如 127 + 1 = -128)。
负溢出:结果超出负数范围(如 -128 - 1 = 127)。
4.对比总结
特性 原码 反码 补码
符号处理 符号位 + 绝对值 符号位 + 取反 符号位 + 取反加1
零的表示 +0 和 -0 +0 和 -0 唯一零(00000000)
数值范围(8位) -127 至 +127 -127 至 +127 -128 至 +127
运算复杂度 高 中 低
实际应用 早期系统 极少使用 现代计算机标准
二.常用信息编码
1. 西文字符的编码
西文字符是由拉丁字母、数字、标点符号及一些特殊符号所组成的,它们被统称为“字 符”。所有字符的集合叫作“字符集”。
SCII 码是基于拉丁字母的一套电脑编码系统,它使用 7 位二进制数来表示 128 种不同的字符,包括人们在计算机输入输出中最常用的十进制数字 0 - 9、大小写英文字母 A - Z 和 a - z、各种标点符号以及一些控制字符等,为计算机系统中字符的存储、传输和处理提供了统一的编码标准。
发展历程
1963 年,美国国家标准协会(ANSI)开始制定 ASCII 码标准。
1967 年,ASCII 码被正式定为美国国家标准。
后来,国际标准化组织(ISO)将其采纳为国际标准,称为 ISO/IEC 646 标准,在全球范围内得到了广泛应用。
编码规则
控制字符:ASCII 码中的前 32 个码(0 - 31)和最后一个码(127)被定义为控制字符,用于表示一些特殊的功能或操作,比如换行(LF,代码为 10)、回车(CR,代码为 13)等,它们通常不对应可显示的字符,而是用于控制计算机设备的行为或数据传输的格式。
可打印字符:从 32 到 126 这 95 个码对应的是可打印字符,包括数字、字母和各种标点符号、运算符等。其中,数字 0 - 9 的 ASCII 码值是连续的,从 48 到 57;大写字母 A - Z 的 ASCII 码值也是连续的,从 65 到 90;小写字母 a - z 的 ASCII 码值同样连续,从 97 到 122。
2. 汉字编码
从汉字编码的角度看,计算机对汉字信息的处理过程实际上是各种汉字编码间的转换过程。
(1)汉字输入码
汉字输入码就是为输入汉字而对汉字编制的代码。由于这种编码是供计算机外部的用 户使用的,故又称为汉字的外部码(或外码)。
汉字输入码根据其编码规则,依次分为流水码(将被编的汉字按一定的顺序进行编码,无重码)、音码(根据被编汉字的读音来确定汉字的编码)、形码(根据被编汉字的字形来确定该汉字的编码)、音形结合码(根据被编汉字的读音和字形来确定该汉字编码)等。
(2)汉字内码。
汉字的内码是为在计算机内部对汉字进行存储、处理和传输而编制的汉字代码。
①汉字信息交换码。
汉字信息交换码是用于汉字信息处理系统之间或者与通信系统之间进行信息交换的汉 字的代码,也称国标码。中国于1981年颁布的国家标准《信息交换用汉字编码字符集 —— 基本集》(代号 GB 2312-80)。
国标码采用2字节来表示一个汉字,共收集了7445个图形字符,其中一般符号、数字、 拉丁字母、希腊字母、汉字拼音等682个。汉字字符分为两级: 一级汉字3755个,二级汉字 3008个。
②区位码。
区位码是利用国标码作为检索手段,将汉字、图形符号按照一定的规律排列,组成一个 94 行 94 列的二维代码表。每一行称为一个 “区”,每一列称为一个 “位”,这样就形成了一个有 94 个区(01 - 94 区)和 94 个位(01 - 94 位)的编码空间。每个汉字或符号都可以在这个表中通过它所在的区和位来唯一确定其编码,这种编码就叫做区位码。
编码规则
区码:在区位码表中,01 - 09 区为特殊符号、数字、拉丁字母等非汉字字符的编码区;16 - 55 区为一级汉字区,按照拼音顺序排列;56 - 87 区为二级汉字区,按部首笔画顺序排列。
位码:每一个区内的字符或汉字按照顺序从 01 开始编号,作为位码。例如,汉字 “啊” 在区位码表中的位置是 16 区 01 位,其区位码就是 1601。
特点
唯一性:每个汉字和符号在区位码表中都有唯一的编码,不存在重码现象,这使得计算机在处理汉字和符号时能够准确地识别和区分。
规律性:区位码的排列有一定规律,便于记忆和查找。例如一级汉字按拼音顺序排列,符合人们的使用习惯,方便快速定位查找常用汉字。
与国标码的关系:区位码与国标码有一定的转换关系。将区位码的区码和位码分别加上 32(十六进制为 20H)就得到对应的国标码。例如,“啊” 字的区位码是 1601,转换为国标码就是 3021H(16 + 16 = 32,对应十六进制为 20H;01 + 32 = 33,对应十六进制为 21H)。
③机内码
机内码是指汉字信息处理系统内部标识汉字的编码。汉字机内码由国标码演化而来,把表示国标码的2字节的最高位都置“1”,就变成汉字机内码。
特点
唯一性:每个字符在特定的编码体系下都有唯一的机内码,确保计算机能够准确地区分和处理不同的字符。
兼容性:机内码需要与计算机系统的硬件和软件环境相兼容,能够在不同的计算机设备和操作系统之间进行正确的传输和处理。
高效性:机内码的设计要便于计算机进行存储、检索和运算等操作,以提高计算机处理字符信息的效率。
④通用编码字符集
UCS(通用八位编码字符集),即 Unicode,是全球统一的字符编码标准,涵盖了世界上所有现代书面语言的字符。其表意文字部分采用 CJK 统一汉字编码,对中、日、韩等国字形相同的汉字(无论地域或字义差异)赋予唯一编码,确保跨语言、跨地区的字符兼容性和一致性。该标准解决了传统编码体系的地域局限性问题,成为国际通用的字符集规范。
(3)汉字字形码
汉字字形码又称汉字字模,是表示汉字字形信息(结构、形状、笔画等)的编码,用于实现计算机对汉字的输出(显示、打印)。
表示方式
点阵形式:将汉字看作是由一个个的点组成的图形,通过记录每个点的状态(黑点或白点)来表示汉字的字形。例如,一个 16×16 点阵的汉字,就是用 16 行每行 16 个点来描述该汉字的形状,每个点需要 1 位二进制代码(0 表示白点,1 表示黑点),则存储一个这样的汉字字形码需要 16×16 = 256 位二进制数,即 32 字节。常见的点阵编码有 16×16、24×24、32×32、48×48 等不同密度,点数越多,显示或打印的字体就越美观,但编码占用的存储空间也越大。
矢量形式:存储的是描述汉字字形的轮廓特征,比如将汉字看作由笔画组成的图形,提取每个笔画的坐标值等信息,这些坐标值就可以决定每一笔画的位置。当需要输出汉字时,经过计算机计算,再将汉字字形描述信息生成所需大小和形状的汉字点阵。矢量化字形描述与最终文字显示的大小、分辨率无关,故可以产生高质量的输出汉字,且字形放大后不会走形,但存储和编码较复杂,需要转换才能输出。
字库分类
显示字库:用于显示的字库,显示一个汉字一般采用 16×16 点阵或 24×24 点阵或 48×48 点阵等。
打印字库:用于打印的字库,其中的汉字比显示字库多,而且工作时也不像显示字库需调入内存。
汉字库类型
软字库:以文件的形式存放在硬盘上,现多用这种方式。
硬字库:则将字库固化在一个单独的存储芯片中,再和其它必要的器件组成接口卡,插接在计算机上,通常称为汉卡。
(4)汉字地址码
汉字地址码是汉字字库中存储汉字字形信息的逻辑地址编码。
功能作用
定位字形数据:能让计算机在字库中快速找到特定汉字的字形码,实现汉字显示、打印等输出。
连接机内码与字形码:是机内码和字形码的桥梁,计算机靠它从机内码找到字形码完成汉字输出。
编码方式
顺序编码:按汉字在字库中的存储顺序依次分配连续地址码,简单直观但不利于字库扩充修改。
哈希编码:用哈希函数将汉字机内码等映射为地址码,查找速度快,但可能存在哈希冲突,需解决。
与其他编码关系
与机内码:机内码通过映射关系确定地址码,系统有专门模块或算法进行转换。
与字形码:地址码是获取字形码的关键,是字形码在字库中的 “索引”,决定能否正确输出汉字。
3. 奇偶校验码
奇偶校验是一种简单检验方法,依据被传输的一组八位二进制代码中 “1” 的个数的奇偶性校验,分奇校验和偶校验。奇校验是在 7 位二进制代码最高位附加一位,让带附加位的字符编码中 “1” 的个数为奇数,若传送后 “1” 个数变为偶数则表明传输出错需重传;偶校验是用附加位使八位编码中 “1” 个数为偶数。一组二进制代码占一字节低七位,空缺的第八位可存奇偶校验码,使八位代码成整体用于存储和传输信息。
[真题训练]
1.某数的值是ABH,当它表示机器字长为8位的有符号数时,其对应的补码是( )
A.10101011B. 11010100C. 11010101D.01101011
【答案】C
2.已知某汉字的区位码为2083,则它的机内码是( )
A.3473H B. C123H
C. B4D6H D. B4F3H
【答案】D
3.在GB2312一80国标字符集中,某字符国标码为3460H,它对应的区位码是( )
A.1440 B.2064
C. 1464 D. 5480
【答案】A
【解析】国标码与区位码的转换关系为:区位码(十六进制)= 国标码 - 2020H。
已知某字符国标码为 3460H,将其转换为区位码(十六进制),则区位码(十六进制) = 3460H - 2020H = 1440H。
4.计算机处理汉字时,下列描述正确的是
A.根据汉字机内码取出对应国标码,再由点阵字形输出汉字
B.根据汉字机内码取出对应汉字字形码,再由点阵字形输出汉字
C.根据汉字字形码取出对应地址码,再由地址码输出汉字
D.根据汉字地址码取出对应机内码,再由机内码输出汉字
【答案】B
[限时练习]
1. 在计算机中,一个字节可以表示的最大无符号整数是( )
A. 127 B. 128
C. 255 D. 256
【答案】C
2. 已知某字符的 ASCII 码值为65,则该字符是( )
A. 'A' B. 'a'
C. '0' D. '1'
【答案】A
【解析】在 ASCII 码表中,大写字母 'A' 的 ASCII 码值是65,大写字母 'B' 的 ASCII 码值是66,以此类推;小写字母 'a' 的 ASCII 码值是97;数字字符 '0' 的 ASCII 码值是48,'1' 的 ASCII 码值是49。所以当某字符的 ASCII 码值为65时,该字符是 'A',答案选 A。
3.以下关于汉字机内码的说法,正确的有( )
A. 汉字机内码是计算机内部存储、处理汉字时使用的编码
B. 汉字机内码通常是在国标码的基础上加上8080H得到的
C. 汉字机内码的两个字节的最高位一定都是1
D. 不同的汉字输入法,输入同一汉字得到的机内码是相同的
【答案】ABCD
4.下列编码中,用于表示字符的有( )
A. ASCII 码 B. 汉字机内码
C. 汉字区位码 D. 补码
【答案】ABC
【解析】补码是一种数值编码方式,主要用于在计算机中表示有符号整数,方便进行数值的运算和存储,而不是用于表示字符,D 选项错误。
[归纳小结]
学科网(北京)股份有限公司
$$