第2章信息编码及在计算机中的表示.docx

上传人:b****6 文档编号:13722702 上传时间:2023-06-16 格式:DOCX 页数:26 大小:100.02KB
下载 相关 举报
第2章信息编码及在计算机中的表示.docx_第1页
第1页 / 共26页
第2章信息编码及在计算机中的表示.docx_第2页
第2页 / 共26页
第2章信息编码及在计算机中的表示.docx_第3页
第3页 / 共26页
第2章信息编码及在计算机中的表示.docx_第4页
第4页 / 共26页
第2章信息编码及在计算机中的表示.docx_第5页
第5页 / 共26页
第2章信息编码及在计算机中的表示.docx_第6页
第6页 / 共26页
第2章信息编码及在计算机中的表示.docx_第7页
第7页 / 共26页
第2章信息编码及在计算机中的表示.docx_第8页
第8页 / 共26页
第2章信息编码及在计算机中的表示.docx_第9页
第9页 / 共26页
第2章信息编码及在计算机中的表示.docx_第10页
第10页 / 共26页
第2章信息编码及在计算机中的表示.docx_第11页
第11页 / 共26页
第2章信息编码及在计算机中的表示.docx_第12页
第12页 / 共26页
第2章信息编码及在计算机中的表示.docx_第13页
第13页 / 共26页
第2章信息编码及在计算机中的表示.docx_第14页
第14页 / 共26页
第2章信息编码及在计算机中的表示.docx_第15页
第15页 / 共26页
第2章信息编码及在计算机中的表示.docx_第16页
第16页 / 共26页
第2章信息编码及在计算机中的表示.docx_第17页
第17页 / 共26页
第2章信息编码及在计算机中的表示.docx_第18页
第18页 / 共26页
第2章信息编码及在计算机中的表示.docx_第19页
第19页 / 共26页
第2章信息编码及在计算机中的表示.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第2章信息编码及在计算机中的表示.docx

《第2章信息编码及在计算机中的表示.docx》由会员分享,可在线阅读,更多相关《第2章信息编码及在计算机中的表示.docx(26页珍藏版)》请在冰点文库上搜索。

第2章信息编码及在计算机中的表示.docx

第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位编码对应一位十进制数。

下表列出了这三种有权

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2