第2章信息编码及在计算机中的表示.docx
- 文档编号:13722702
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:26
- 大小:100.02KB
第2章信息编码及在计算机中的表示.docx
《第2章信息编码及在计算机中的表示.docx》由会员分享,可在线阅读,更多相关《第2章信息编码及在计算机中的表示.docx(26页珍藏版)》请在冰点文库上搜索。
第2章信息编码及在计算机中的表示
第2章信息编码及在计算机中的表示
2.1信息的数字化编码
编码:
是用来将信息从一种形式转变为另一种形式的符号系统,通常选用少量最简单的基本符号和一定的组合规则,以表示出大量复杂多样的信息。
信息的数字化编码:
是指用“0”或“1”这种量最少、最简单的二进制数码,并选用一定的组合规则,来表示数据、文字、声音、图形和图像等各种复杂的信息。
计算机中采用的是二进制数码,为什么?
(重点)
2.2进位计数制及其相互转换
2.2.1进位计数制
数制中的三个基本名词术语:
数码:
用不同的数字符号来表示一种数制的
数值,这些数字符号称为“数码”。
基:
数制所使用的数码个数称为“基”。
权:
某数制各位所具有的值称为“权”。
1.十进制数(DecimalSystem)
数码:
0、1、……8、9
基:
10(逢十进一,借一当十)
权:
以10为底的幂
任何一个十进制数DnDn-1…D1D0D-1…,可以表示成按权展开的多项式:
Dn×10n+Dn-1×10n-1+…+D1×101+D0×100+D-1×10-1+…+D-m×10-m
例如:
1234.5的按权展开多项为:
1234.5=1×103+2×102+3×101+4×100+5×10-1
⒉二进制数
二进制(BinarySystem)
数码:
0和1
基:
2
权:
以2为底的幂
任何一个二进制数BnBn-1…B1B0B-1…B-m,可以表示成按权展开的多项式:
Bn×2n+Bn-1×2n-1+…+B1×21+B0×20+B-1×2-1+…+B(-m+1)×2-(m-1)+B-m×2-m
例如:
1101.01的按权展开多项为:
1101.01=1×23+1×22+0×21+1×20+0×2-1+1×2-2
⒊八进制数
八进制数(OctaveSystem)
数码:
0、1、……6、7
基:
8
权:
以8为底的幂
八进制数的一般式可以表示为:
On×8n+On-1×8n-1+…+O1×81+O0×80+O-1×8-1+…+O(-m+1)×8-(m-1)+O-m×8-m
⒊十六进制数
十六进制(HexadecimalSystem)
数码:
0、1、……8、9、A(1010)、B(1011)、C(1100)、D(1101)、E(1110)、F(1111)
基:
16
权:
以8为底的幂
十六进制数的一般式可以表示为:
Hn×16n+Hn-1×16n-1+…+H1×161+H0×160+H-1×16-1+…+H(-m+1)×16-(m-1)+H-m×16-m
例:
二进制数1011.0101及其对应的八进制数、
十进制数和十六进制数可以表示为:
1101.0111
(2)=15.34(8)=13.4375(10)=E.7(16)
或:
(1101.0111)2=(15.34)8=(13.4375)10=(E.7)16
或:
1101.0111B=15.34O=13.4375D=E.7H
2.2.2常用进位计数制间的相互转换
⒈二进制数、八进制数、十六进制数转换为十进制数
各种进位计数制可统一表示为下式:
式中:
R─某种进位计数制的基数;
i─位序号;
Ki─第i位上的一个数码为0~R-1中的任一个;
Ri─则表示第i位上的权;
m,n─最低位和最高位的位序号。
用上式可将任何一个二进制数、八进制数、十六进制数直接转换为十进制数,这叫做按权展开法。
例:
⑴二进制数转换为十进制数
(1011.0101)2=1×23+0×22+1×21+1×20+0×2-1+1×2-2+0×2-3+1×2-4=8+0+2+1+0+1/4+0+1/16
=(11.3125)10
⑵八进制数转换为十进制数
(75.21)8=7×81+5×80+2×8-1+1×8-2
=56+5+2/8+1/64=(45.20238)10
⑶十六进制数转换为十进制数
(175.FB)16=1×162+7×161+5×160+15×16-1+11×16-2
=256+112+5+15/16+11/162
=(373.98046875)10
⒉十进制数转换为二进制数
⑴十进制整数转换为二进制数(连除基数、倒取余)
方法:
除以2取余法。
即逐次除以2,直至商为0,得出的余数即为二进制数各位的数码。
【例2.1】把一个十进制数156转换为二进制数。
结果:
(156)10=(10011100)2
⑵十进制纯小数转换为二进制数
方法:
乘2取整法。
即逐次乘以2,从每次乘积的整数部分得到二进制数各位的数码。
【例2.2】把十进制小数0.34375转换为二进制小数。
结果:
(0.34375)10=(0.01011)2
连乘基数、正向取整
⒊二进制数与八进制数的转换
1.二进制数转换成八进制数
方法:
将二进制数从小数点开始分别向左(对二进制整数)或向右(对二进制小数)每三位组成一组,每一组有3位二进制数,转换成八进制数码中的1个数字,连接起来即可。
不足3位的补0。
【例2.3】把二进制数(101100011.011100101)2转换为八进制数。
101100011.011100101
543.345
即有:
(101100011.011100101)2=(543.345)8
⒊二进制数与八进制数的转换
2.八进制数转换成二进制数
方法:
将每1位八进制数写成相应二进制3位数,顺序写好即成。
【例2.4】把八进制数(7351.65)8转换为二进制数。
7351.65
111011101001.110101
即有:
(7351.65)8=(111011101001.110101)2
⒋二进制数与十六进制数的转换
⑴二进制数转换成十六进制数
方法:
把十六进制数每位的数字与二进制数的4位数相对应。
【例2.5】把二进制数(110100110101)2转换为十六进制数。
110100110101
D35
即有:
(110100110101)2=(D35)16
⒋二进制数与十六进制数的转换
⑵十六进制数转换成二进制数
方法:
将每1位十六进制数写成相应的二进制4位数,顺序写好即成。
例如:
E8B
111010001011
即有:
(E8B)16=(111010001011)2
对于十进制数转换为八进制数或十六进制数的问题,我们可以先把十进制数转换成二进制数,然后再转换为八进制数或十六进制数。
4种数制之间的转换可参照下表进行
2.3非数值数据的表示
2.3.1字符数据的编码
非数值数据又叫符号数据或字符数据,包括字母和符号。
目前世界上用ASCII码(AmericanStandardCodeforInformationInterchange)来表示。
ASCII码有7位ASCII码和8位ASCII码两种,7位ASCII码称为标准ASCII码,8位ASCII码称为扩充ASCII码。
2.3.2汉字编码
汉字编码:
机内码和机外码
机内码:
是在计算机内部使用的用二进制代码表示的汉字编码,用于在计算机内部存储、交换、处理加工汉字信息
机外码:
是不在计算机内使用的汉字编码,主要是指汉字输入码。
此外还有供输出的汉字字型点阵码。
⒈国标码(了解)
国标码:
指我国1981年公布的“中华人民共和国国家标准信息交换汉字编码”,是一种国家标准编码,代号为“GB2312-80”。
它以94个可显示的ASCII码字符为基集,由两个字节构成。
国标码与ASCII码属同一制式,可以认为国标码是扩展的ASCII码。
国家标准(GB2312-80)汉字字符集示意图
国标码用两个字节的16进制数表示,例如“文”的国标码是“4E44H”,“中华人民共和国”的国标码分别是“5650H、3B2AH、484BH、4371H、3932H、3A4DH、397AH”。
⒉汉字机内码(实质:
汉字的地址)
汉字机内码:
在计算机系统内部用来表示汉字的编码。
ASCII码是一种西文机内码,在设计汉字机内码时,应遵循如下原则:
⑴汉字机内码的编码不能有二义性,否则和其他编码分不清,例如要能和ASCII码严格区分。
⑵代码的长度尽可能短,所能表示的汉字要尽可能多。
⑶应与国标码有相应的对应关系,以便于对汉字库的处理和对汉字的查找。
汉字机内码与国标码的关系
汉字机内码高位字节=国标码高位字节+80H
汉字机内码低位字节=国标码低位字节+80H
例如:
“文”的国标码是“4E44H”,要求它的机内码,只要把“文”字国标码两个字节的16进制数4EH和44H分别加80H,即成该汉字的机内码。
4EH+80H=CEH
44H+80H=C4H
⒊汉字输入码(机外码)
汉字输入码:
指直接从键盘输入的各种汉字输入方法的编码,属于外码。
按照编码原理,汉字输入码主要分为三类:
数字码(区位码和电报码)、拼音码和字形码。
还有以汉字的音和形相结合的音形码和形音码。
⑴数字码
数字码:
将待编码的汉字集以一定的规则排序以后,依次逐个赋予相应的数字串作为汉字输入代码。
典型的数字码:
区位码和电报码
优点:
无重码缺点:
代码难以记忆。
区位码与国标码、机内码的对应关系为:
用十进制数输入的区码和位码先分别转换为十六进制数(各一个字节),再分别加上20H,就成了国标码;再在两个字节分别加上80H,就成为机内码。
例如,“文”字的区位码为4636,区码和位码分别用十六进制表示即为“2E24H”,转换成国标码就是“4E44H”,它的机内码为“CEC4H”。
⑵拼音码:
汉语拼音方案为基础的输入方法
最大优点:
简单易学,只要会汉语拼音,就能输入汉字,并且输入时不影响思考,
适合于业务人员和专业技术人员使用。
全拼输入法—双拼输入法—增加联想功能—以词为单位的智能拼音输入法
⑶字形码:
以汉字的形状确定的编码
最大特点:
能广泛地为国内外不同地区使用汉字方言较重的人们服务
缺点:
编码规则较复杂。
典型:
五笔字型输入法
⑷其它输入方法:
音形码和形音码
⒋汉字字型码——汉字点阵字模库(重点)
汉字信息存储在计算机内有两种编码:
一种是汉字机内码,另一种是字型点阵码。
点阵字型方式:
是把汉字像图形一样置于网状方格上,每格是存储器中的1个位(bit),16×16点阵是在纵向16点、横向16点的网状方格上描绘一个汉字,有笔划的格对应1,无笔划的格对应0。
这种用点阵形式存储的汉字字型信息的集合称为汉字的点阵字模库,简称汉字库。
汉字点阵字模的分类
⒌汉字字符集(了解)
目前,在我国使用的计算机汉字操作平台中有三种汉字字符集。
⑴国标码字符集GB2312-80:
我国政府于1981年公布的《信息交换用汉字编码字符集基本集》,在该字符集中收录了6763个常用汉字和各种符号682个,合计7445个。
⑵GBK汉字集:
即汉字内码扩充规范,”大字符集”。
在此汉字集中一共收录了20900个汉字,它包容了GB2312-80的6763个常用汉字,台湾BIG5码的13000多个汉字。
此扩充规范发布后,美国的Microsoft公司率先将GBK规范装入Windows95中。
在Windows95简体中文版中,又增加了101个补充字,一共有21001个字。
⑶国标码GB18030字符集:
即GB18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充》新标准。
该字符集共收录了27000多个汉字,总编码空间超过150万个码位,是真正的大汉字集。
它在体系结构上延续了GB2311-1990《信息处理七位和八位编码字符集代码扩充技术》编码体系,采用单/双/四字节混合编码,该标准还收录了藏文、蒙文、维吾尔等主要的少数民族文字,以及世界上几乎所有的语言文字,为中文信息在Internet上的传输与交换提供了保障。
2.4数值数据的表示和运算(重点)
2.4.1机器数
1.机器数和真值的概念
符号的数值化:
把正负符号用一位二进制数码来表示。
符号位:
符号数值化后占的若干个数值位。
机器数:
数的符号用二进制数“0”或“1”来表示的,且符号位总是在该数的最高数值位之前的那种数。
规定“0”表示正号,“1”表示负号。
原码、补码、反码、移码等把符号位和数值位一起编码表示的数就是机器数。
真值:
用“+”、“-”表示符号的那种数。
例:
N1=+0.1011,N2=-0.1011,这是真值,
表示成机器数就为[N1]原=0.1011,[N2]原=1.1011
⒉机器数的特点
⑴用二进制数码表示优点:
①使用元器件简单,便于硬件实现
②运算简单
③节省存储设备
④便于用逻辑代数进行逻辑设计
⑵机器数所表示的数值范围是有限的,无法表示时,便产生溢出
机器数所表示的数值范围是由机器的字长决定,字长越长,所能表示的数的范围越大。
例:
一台字长为n位的机器,它所能表示的机器数X除0以外,最小是1,最大是2n-1,即其所表示的范围是:
1≤X≤2n-1
比1小的值,认为是机器零;数值大于2n-1,机器不能表示,我们称为“溢出”。
对于不带符号位的定点纯小数(即小数点位于机器数的最左边的数),字长为n位的机器所能表示的机器数X的范围是:
2-n≤X≤1-2-n,如图所示:
凡是小于2-n的数都认为是机器零;如果数值大于1-2-n的数,机器不能表示,被认为机器数无穷大,产生溢出。
从上面的分析情况可以看除,计算机产生溢出的一个重要原因是由计算机的字长造成的。
⑶符号的数值化表示
用0表示正(“+”)号,用1表示负(“-”)号。
以字长为8位为例,+1101101和-1101101
这两个数的表示如图所示:
⑷定点数和浮点数的不同表示
根据小数点位置的不同,机器数有定点数和浮点数。
①定点数表示方式:
小数点的位置是固定不变的数称为定点数。
若约定小数点固定于机器数最低位的右边,则机器数表示整数;若约定小数点固定于机器数数值位的左边符号位的右边,则机器数表示纯小数。
②浮点数表示方式:
浮点数是一种指数形式的表示方式,其一般表示式为:
X=2r·x。
其中,r称为X的阶码,它指明了小数点的位置,表示数的大小;x称为X的尾数,表明了X的有效值。
⒊二进制数的运算规则
⑴算术运算规则
加法规则:
0+0=00+1=11+0=11+1=10
减法规则:
0-0=010-1=11-0=11-1=0
乘法规则:
0×0=00×1=01×0=01×1=1
除法规则:
0÷1=01÷1=1
⑵逻辑运算规则
⏹逻辑或:
又称逻辑加,用符号“∨”或“+”来表示。
其运算规则为:
0∨0=00∨1=11∨0=11∨1=1
⏹逻辑与:
又称逻辑乘,用符号“∧”或“·”来表示。
其运算规则为:
0∧0=00∧1=01∧0=01∧1=1
⏹逻辑非:
即对每位的逻辑值取反,用二进制数字上划线表示
规则为:
逻辑异或:
即实现按位加的功能,异或运算用符号(⊕)表示
其运算规则是:
0⊕0=00⊕1=11⊕0=11⊕1=0
进行异或运算的两位不相同时,异或结果为1,两位相同时,异或结果为0。
2.4.2定点数的原码、反码、补码和移码
⒈定点数的原码
原码表示方法:
符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示的方法。
通常用[X]原表示X的原码。
例如,要表示+59和-59的原码,假设机器数的位数是8位(机器的字长8位),最高位是符号位,其余7位是数值位,那么+59和-59的原码表示为[+59]原=00111011[-59]原=10111011
写成一般式则为:
正数的原码[X]原=X(2n-1>X>0)
负数的原码[X]原=2n-1-X(-2n-1 应注意,0的原码有两个值,有“正零”和“负零”之分。 [+0]原=00000000[-0]原=10000000 ⒉定点数的补码 补码的定义是: 把某数X加上模数K,称为以K为模的X的补码。 [X]补=K+X 因此正数的补码是最高位为符号“0”,数值部分为该数本身;负数的补码是最高位为符号“1”,数值为用模2减去该数的绝对值。 求一个二进制数补码的方法是,正数的补码与其原码相同;负数的补码是先把其原码除符号外的各位先求反,然后在最低位加1。 【例2.16】若X=+0.1011,Y=-0.1011,求[X]补、[Y]补。 解: [X]补=0.1011 [Y]补=10-0.1011=1+1-0.1011=1.0101(mod2) 0的补码只有一种形式,就是n位0。 字长为n位的定点整数补码的定义式为: 3.反码 正数的反码就是这个数本身,而负数的反码是符号位为1,数值部分等于其绝对值各位求反。 例如: [+59]反=00111011,[-59]反=11000100。 零的反码也有两个,[0]反=00000,[-0]反=10000 字长为n的定点整数反码的定义式为: 可得到如下公式: X-Y=X+(Y的补码)=X+(Y的反码+1) 在8位机中,补码表示的范围为+127~-128, 下表列出了8位二进制数的各种表示方法。 目前大多数计算机均采用补码存储、补码运算,其运算结果仍为补码形式。 【例2.17】在字长为8位的计算机中,求下列数的原码、反码及补码+18、-18、+31、-31、+127、-127 解: [+18]原=[+18]反=[+18]补=00010010 [-18]原=10010010[-18]反=11101101[-18]补=11101110 [+31]原=[+31]反=[+31]补=00011111 [-31]原=10011111[-31]反=11100000[-31]补=11100001 [+127]原=[+127]反=[+127]补=01111111 [-127]原=11111111[-127]反=10000000 [-127]补=10000001 4.移码 移码也叫增码或偏码,常用于表示浮点数中的阶码。 对于字长为n的计算机,若最高位为符号位,数值为n-1位当偏移量取为2n-1时,其真值x所对应的移码的表示公式为: [X]移=2n-1+X(-2n-1≤X<2n-1) 移码和补码之间的关系: 当0≤X<2n-1时,[X]移=2n-1+X=2n-1+[X]补 当-2n-1≤X<0时,[X]移=2n-1+X=(2n+X)-2n-1=[X]补-2n-1 可见,[X]移可由[X]补求得,方法是把[X]补的符号位取反,就得到[X]移。 【例2.18】X=+1011,Y=-1011,求[X]移和[Y]移。 解: [X]补=01011,所以[X]移=11011 [Y]补=10101,所以[X]移=00101 移码的性 1最高一位为符号位,其取值与原码、补码都相反,“1”表示正号,“0”表示负号。 ②对移码一般只执行加减运算,在对两个浮点数进行乘除运算时,是尾数实现乘除运算,阶码执行加减运算。 对阶码执行加减运算时,需要对得到的结果加以修正,修正量为2n-1,即要对符号位的结果取反后,才得到移码形式的结果。 ③在移码的表示中,0有惟一的编码,即[0]移=1000…0,而且,机器零的形式为000…000。 2.4.3定点数和浮点数 ⒈定点数表示法: 通常把小数点固定在数值部分的最高位之前,或把小数点固定在数值部分的最后面。 前者将数表示成纯小数,后者把数表示成整数。 如图所示。 对纯小数进行运算时,要用适当的比例因子进行折算,以免产生溢出,或过多损失精度。 ⒉浮点数表示法 浮点数是指在数的表示中,其小数点的位置是浮动的。 任一个二进制数N可以表示成: N=2E·M 式中,M为数N的尾数或数码,E为指数,是数N的阶码,是一个二进制整数 浮点数分为阶码和尾数两个部分。 浮点数的格式表示 格式1: Ms为尾数的符号位,安排在最高一位;E为阶码,紧跟符号位之后,占m位;M为尾数,在低位部分,占n位。 【例2.19】对一个真值为+23.25的十进制数,用浮点数格式1表示法表示其原码。 (23.25)10=(10111.01)2,用浮点数表示其原码为: 2+101×0.1011101,则在机器中表示为: 这里阶码和尾数都用原码表示,实际上往往是尾数用补码表示,阶码用移码表示。 格式2: 其中: Ns为阶码的符号位,安排在最高一位;E为阶码,紧跟阶符位之后,占m位;Ms为尾数的符号位,在尾数之前的一位,M为尾数,在低位部分,占n位。 【例2.20】例2.19中的十进制数+23.25,用浮点数格式2表示法表示其原码、反码和补码。 +23.25化成浮点数为: 2+101×0.1011101,则其原码、反码和补码分别表示为: ⒉浮点数表示法 在浮点数的表示中,要注意三个问题: ①阶码的位数和尾数的位数的关系。 例如,用32位表示的一个浮点数,符号位占1位,阶码用8位,尾数用23位,数的表示范围约为±1.7×10±38,精度约为十进制的7位有效数字。 ②浮点数通常采用规格化的表示方法。 所谓浮点数的规格化就是其尾数的第一位要为1,若不为1,就要用“左规”的方法使其为1。 左规就是尾数向左移动(同时调整阶码),直至尾数的第一位为1或阶码为全0或最小值。 如: 210×0.1101,-210×0.1101就是规格化的浮点数;而211×0.0110,-211×0.0110是非规格化的浮点数。 【例2.21】把非规格化的浮点数N=211×0.0110规格化 解: 把浮点数N的尾数向左移一位(或尾数的小数点右移一位),变成0.1100,同时,阶码递减1,得到N=210×0.1100,就是规格化的浮点数。 ③当一个浮点数的尾数为0,不论其阶码为何值;或者阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成是0,称为机器零。 2.4.4十进制数的编码 ⒈BCD码(Binary-CodedDecimal)是用4位二进制编码来表示一个十进制数,代码的每位都是固定有权的,因此称为有权码。 把4位代码中为1的各位的权加起来,即得到这个对应的十进制数。 ⒈BCD码 ⑴8421码 8421码是二进制编码各位的权分别是8、4、2、1,因此叫8421码。 下表是十进制数码与8421码的对照表。 要注意,每1位十进制数码对应4位8421码,如十进制数175的8421码是000101110101,写成表达式即为: (175)10=(000101110101)8421 ⑵2421码 2421码是二进制编码各位的权分别是2、4、2、1,因此叫2421码。 下表6是十进制数码与2421码的对照表。 注意,每1位十进制数码对应4位2421码,如十进制数175的2421码是000111011011,写成表达式即为(175)10=(000111011011)2421 ⑶其他有权码 BCD码中的其他有权码还有5211码、8-4-2-1码、4311码。 它们也都是4位编码对应一位十进制数。 下表列出了这三种有权
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 编码 计算机 中的 表示