ImageVerifierCode 换一换
格式:PPT , 页数:379 ,大小:4.28MB ,
文档编号:7926631      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7926631.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《计算机组成原理》课件第2章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《计算机组成原理》课件第2章.ppt

1、运算方法和运算器第 章第2章运算方法和运算器2.1数值数据的表示方法数值数据的表示方法2.2非数值数据的表示方法非数值数据的表示方法2.3定点加法、定点加法、减法运算减法运算2.4定点乘法运算定点乘法运算2.5定点除法运算定点除法运算2.6逻辑运算和移位运算逻辑运算和移位运算2.7定点运算器的组成与结构定点运算器的组成与结构2.8浮点运算方法和浮点运算器浮点运算方法和浮点运算器2.9数据校验码数据校验码本章小结本章小结习题习题2运算方法和运算器第 章 2.1数值数据的表示方法数值数据的表示方法2.1.1数据格式数据格式计算机中数据的小数点并不是用某个二进制数字来表示的,而是用隐含的小数点的位置

2、来表示的。根据小数点的位置是否固定,将计算机中的数据表示格式分为两种,即定点格式和浮点格式。一般来说,定点格式所表示的数的范围有限,但运算复杂度和相应的处理硬件都比较简单;而浮点格式所表示的数的范围很大,但运算复杂度和相应的处理硬件都比较复杂。运算方法和运算器第 章1.定点数的表示方法定点数的表示方法所谓定点格式,是指在数据表示时,约定机器中所有数据的小数点的位置是固定不变的。由于小数点的位置是固定的,因此在数据存储和运算时,就不必专门用某个二进制数字来表示小数点。我们把用定点格式表示的数称为定点数。在计算机中,通常将定点数表示成纯小数或纯整数。假设用一个n+1位字来表示一个定点数x,其中数的

3、符号称为数符,占1位,放在数据的最高位,并用数值0或1分别表示正号或负号;数的量值称为尾数,占n位。对于任意一个n+1位的定点数x,在定点机中可表示成如图2.1所示的格式。运算方法和运算器第 章图2.1定点数的表示格式运算方法和运算器第 章如果数x表示的是纯小数,那么小数点在x0和x1之间,即数符和尾数之间。如果数x表示的是纯整数,那么小数点在xn后面,即数据的最后。定点纯小数和定点纯整数的表示范围与数的机器码表示有关,在后面介绍各种数的机器码表示时,再详细讨论。本章后面所提到的定点小数均是指定点纯小数,定点整数均是指定点纯整数。运算方法和运算器第 章2.浮点数的表示方法浮点数的表示方法在科学

4、计算中,常常会遇到非常大或非常小的数值,如果用定点数来表示的话,很难同时满足数据的表示范围和运算精度的要求。为了解决这一问题,计算机中采用了浮点格式。所谓浮点格式,是指在数据表示时,将浮点数的范围和精度分别表示,相当于小数点的位置随比例因子的不同而在一定的范围内可自由浮动。我们把用浮点格式表示的数称为浮点数。运算方法和运算器第 章对于一个任意进制数N,均可表示成N=MRE,比如十进制数表示的23.67102、0.68103。其中:M称为浮点数的尾数,用定点小数表示,值可正可负,尾数的符号就是浮点数的符号,尾数的位数决定了浮点数的表示精度;E称为浮点数的阶码,即通常所说的指数,用定点整数表示,值

5、可正可负,其位数决定了浮点数的表示范围;R称为浮点数阶码的基数,在二进制浮点数据表示中,R的取值通常为2,由于R的取值是默认的,因此,在浮点数的表示格式中省去了对R的表示。运算方法和运算器第 章1)浮点数的表示格式在早期的计算机中,一个浮点数在机器中的表示格式,通常由阶码和尾数两部分组成。其中阶码又包括阶符和阶码值两部分,尾数又包括数符和尾数值两部分,如图2.2所示。图2.2浮点数的表示格式运算方法和运算器第 章在上述浮点数的表示格式中,阶符占1位,阶码值占m位,数符占1位,尾数值占n位。由于尾数用定点小数表示,尾数的小数点位于数符与尾数值之间。由于阶码用定点整数表示,阶码的小数点位于阶码值的

6、最后。浮点数的表示范围与尾数和阶码采用的机器码表示有关,一般来说,浮点数的尾数常用原码或补码表示,而阶码常用移码或补码表示。后来为便于软件移植,IEEE 754规定了浮点数的表示标准,这包括定义了单精度(32位)和双精度(64位)两种常规格式,如图2.3所示,以及两种扩展格式。限于篇幅,这里只介绍两种常规格式。运算方法和运算器第 章图2.3IEEE 754标准中浮点数的两种常规格式运算方法和运算器第 章32位浮点数和64位浮点数中阶码的基数都是2。32位浮点数格式中,S是浮点数的符号位,占1位,S=0表示正数,S=1表示负数;M是浮点数的尾数,放在低位部分,占23位,小数点放在浮点数格式中的E

7、和M之间,即M的最前面,实际尾数的取值为1.M;E是浮点数的阶码,占8位,阶符采用隐含方式。64位浮点数格式中S、E和M的含义与32位浮点数格式相同,不同的是64位浮点数格式中的M占52位,E占11位。运算方法和运算器第 章2)浮点数的规格化在浮点数的表示中,若不对浮点数的表示作出明确规定,同一个浮点数则可表示成多种不同的形式。例如,(9.25)10可以表示成001.0120,也可以表示成100.10121,还可以表示成10.010122、1.0010123、0.10010124、0.010010125等多种形式。为了使浮点数的表示方法有尽可能高的精度,充分利用尾数的有效数位,同时也是为了使浮

8、点数的表示具有惟一性,通常采用浮点数规格化形式。即当尾数的值不为全0时,规定尾数的最高位必须是一个有效值。规格化浮点数定义如下:运算方法和运算器第 章若尾数用双符号位原码表示,则规格化正数的尾数形式为00.1,规格化负数的尾数形式为11.1;若尾数用双符号位补码表示,则规格化正数的尾数形式为00.1,规格化负数的尾数形式为11.0。对于非规格化的浮点数,要进行尾数的规格化处理,尾数每向左移动1位,阶码减1;当尾数溢出时,要进行尾数右移的规格化处理,尾数每向右移动1位,阶码加1。运算方法和运算器第 章在IEEE 754标准中,尾数用原码表示,尾数的符号即浮点数的符号,由S表示。因为规格化浮点数尾

9、数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。在IEEE 754标准中,一个规格化的32位浮点数x的真值可表示为x=(1)s(1.M)2E127 (2.1)其中,S、M、E分别为32位浮点数表示格式和存储格式中的数符、尾数和阶码。公式中的E127表示浮点数x的指数e,即e=E127或E=e+127。运算方法和运算器第 章在IEEE 754标准中,一个规格化的64位浮点数x的真值可表示为x=(1)s(1.M)2E1023 (2.2)其中,S、M、E分别为64位浮点数表示格式和存储格式中的数符、尾数和阶码。公式中的E1023表示浮点数x的指数e,即e=E1023或

10、E=e+1023。当阶码E为全0或全1时用于表示包括0和等特殊值。对于32位的规格化浮点数,E的范围是1254,对应真值指数的范围是126+127。运算方法和运算器第 章32位浮点数表示的数的绝对值范围是10381038(以10的幂表示)。对于64位的规格化浮点数,E的范围是12046,对应真值指数的范围是1022+1023。64位浮点数表示的数的绝对值范围是1030810308(以10的幂表示)。当阶码E为全0且尾数M也为全0时,表示的真值x为0。结合符号S为0或1,有正零和负零之分。如果阶码E为全0而尾数M不为全0,则这是一种非规格化数,表示的值为(0.M)2E126(32位浮点数)或(0

11、.M)2E1022(64位浮点数)。运算方法和运算器第 章当阶码E为全1且尾数M为全0时,表示的真值x为无穷大。结合符号S为0或1,有+和之分。如果阶码E为全1而尾数M不为全0,表示的是一个非数,即由零除以零、取负数平方根或无穷大减无穷大等无效操作产生的结果。例例2.1若浮点数x的IEEE 754标准的32位存储格式为(C2540000)16,求其浮点数的十进制数值。解解:首先将十六进制数转换成二进制数,然后根据IEEE 754标准中32位浮点数的表示格式,将二进制数分成S、E和M三部分。运算方法和运算器第 章即S=1,E=10000100=(132)10,M=1010100000000000

12、0000000包括隐藏位的尾数1.M=1.10101000000000000000000=1.10101根据IEEE 754标准中的32位浮点数真值与存储格式之间的转换公式x=(1)s(1.M)2E127运算方法和运算器第 章有x=(1)1(1.10101)2132127 =(1.10101)25 =110101 =(53)10例例2.2将数(35.875)10转换成IEEE 754标准的32位浮点数的二进制存储格式。解解:首先将十进制数35.875转换成二进制数:(35.875)10=(100011.111)2然后将二进制数表示成浮点数形式,并使其尾数为1.M的形式。运算方法和运算器第 章1

13、00011.111=1.0001111125根据IEEE 754标准中的32位浮点数真值与存储格式之间的转换公式x=(1)s(1.M)2E127有S=0,E=(5)10+(127)10=(132)10=(10000100)2,M=00011111000000000000000最后得到该32位浮点数的二进制存储格式为01000010000011111000000000000000=(420F8000)16运算方法和运算器第 章3.十进制数串的表示方法十进制数串的表示方法大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有以下两种表示形式:(1)字符串形式。在字符串

14、表示形式中,一个字节存放一个十进制的数位或符号。在主存中,这样的一个十进制数占用连续的多个字节,故为了指明一个十进制数,需要给出该数在主存中的起始地址和位数(串的长度)。以这种方法表示的十进制字符串主要用在非数值计算的应用领域中。运算方法和运算器第 章(2)压缩的十进制数串形式。在压缩的十进制数串表示形式中,一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。用压缩的十进制数串表示一个十进制数,也要占用主存连续的多个字节。每个数位占用半个字节,即用4位二进制表示一位十进制数,其值可用BCD(Binary Code for De

15、cimal)码或数字符的ASCII码的低4位表示。运算方法和运算器第 章符号位也占半个字节并存放在最低数字位之后,其值选用4位二进制编码中的六种冗余状态中的有关值,如用12(C)表示正号,用13(D)表示负号。在这种表示中,规定数位加符号位之和必须为偶数,当和不为偶数时,应在最高数字位之前补一个0。例如+239和56分别被表示成:运算方法和运算器第 章在上述表示中,一个实线框表示一个字节,虚线把一个字节分为高低各半个字节,每半个字节给出一个数字位或符号位的编码值(用十六进制形式给出)。符号位在数字位之后。与字符串形式类似,要指明一个压缩的十进制数串,也得给出它在主存中的首地址和数字位个数(不含

16、符号位),又称位长,位长为0的数其值为0。十进制数串表示法的优点是位长可变,许多机器中规定该长度为031,有的甚至更长。运算方法和运算器第 章2.1.2数的机器码表示数的机器码表示所谓无符号数,就是指整个机器字长的全部二进制位均表示数值位(没有符号位)。若机器字长为n+1位,则无符号数的表示范围为02n+11。如机器字长为8位,则无符号数的表示范围为0255。运算方法和运算器第 章所谓有符号数,就是用正、负符号加绝对值来表示数的大小,这种按一般书写形式表示的数值在计算机技术中称为真值。但计算机中所能表示的数或其他信息都是数码化的,对于一个有符号数,要将数的符号连同数一起编码,并作为数的一部分同

17、数一起参与运算。这种在机器中使用的连同数符一起进行编码的数称为机器数或机器码。在计算机中根据运算方法的需要,数的机器码表示往往会不相同,常见的有原码、反码、补码和移码四种表示方法。运算方法和运算器第 章1.原码表示法原码表示法原码表示法是一种比较直观的机器码表示法。原码的最高位作为符号位,用“0”表示正号,用“1”表示负号,有效值部分用二进制数的绝对值表示。定点小数和定点整数的原码表示定义如下:对于定点小数,设x原=x0.x1x2xn,共n+1位,其中x0为符号位,则(2.3)运算方法和运算器第 章对于定点整数,设x原=x0 x1x2xn,共n+1位,其中x0为符号位,则(2.3)例例2.3已

18、知x1=0.1101,x2=0.1010,求x1原、x2原。解解:x1原=0.1101 x2原=1.1010运算方法和运算器第 章例例2.4已知x1=1001,x2=1110,求x1原、x2原。解解:x1原=01001 x2原=11110由例2.3和例2.4可以看出,不管是定点小数还是定点整数,一个正数的原码的符号位为0,数值位为原来的;一个负数的原码的符号位为1,数值位为原来的。实际上就是将数的符号表示放到了机器码的符号位。运算方法和运算器第 章对于真值零,其原码有正零和负零之分,即零的原码表示不惟一。故对于定点小数和定点整数,零的表示各有两种形式:对于定点小数,+0原=0.0000,0原=

19、1.0000;对于定点整数,+0原=00000,0原=10000。如果已知一个数的原码,求它的真值的方法是:对于定点小数,直接将符号位0还原成正号“+”或缺省,将符号位1还原成负号“”,整数位为0,数值位是原来的。对于定点整数,直接将符号位0还原成正号“+”或缺省,将符号位1还原成负号“”,数值位是原来的。运算方法和运算器第 章例例2.5已知x1原=0.1011,x2原=1.0001,y1原=11001,y2原=01001,求x1、x2、y1、y2。解解:x1=0.1011 x2=0.0001 y1=1001 y2=1001原码表示法的优点是直观易懂,机器码和真值之间的转换很容易,用原码实现乘

20、、除法运算的规则很简单;缺点是实现加减运算的规则较复杂。在计算机中,加减运算中的数一般采用补码来表示。运算方法和运算器第 章2.补码表示法补码表示法在计算机中,机器字长是有限的,例如某机器字长为32位,两个32位的数据进行某种运算后,若运算的结果位数超过了32位,则由第32位向更高位产生的进位就被丢失,被丢失位的大小就是该计算机的“模”。如果是n+1位定点小数(最高位为符号位),则其模为2。如果是n+1位定点整数(最高位为符号位),则其模为2n+1。定点小数和定点整数的补码表示定义如下:对于定点小数,设x补=x0.x1x2xn,共n+1位,其中x0为符号位,则运算方法和运算器第 章x,0 x1

21、2n2+x=2|x|,1x0对于定点整数,设x补=x0 x1x2xn,共n+1位,其中x0为符号位,则x,0 x2n12n+1+x=2n+1|x|,2nx0 x补=(mod 2)(2.5)x补=(mod 2)(2.6)例例2.6已知x1=0.0101,x2=0.1100,求x1补、x2补。解解:x1补=0.0101 x2补=1.0100运算方法和运算器第 章例例2.7已知x1=1011,x2=0100,求x1补、x2补。解解:x1补=01011 x2补=11100由例2.6和例2.7可以看出,不管是定点小数还是定点整数,一个正数的补码的符号位为0,数值位为原来的;一个负数的补码的符号位为1,数

22、值位按位取反并在末位加1。对于真值零,其补码表示是惟一的:对于定点小数,+0补=0补=0.0000;对于定点整数,+0补=0补=00000。运算方法和运算器第 章如果已知一个数的补码,求它的真值的方法是:对于定点小数,若符号位为0,则该数为正数,补码表示的数即为真值;若符号位为1,则该数为负数,将符号位1还原成负号“”,整数位为0,数值位按位取反并在末位加1。对于定点整数,若符号位为0,则该数为正数,将符号位0还原成正号“+”或缺省,数值位是原来的;若符号位为1,则该数为负数,将符号位1还原成负号“”,数值位按位取反并在末位加1。运算方法和运算器第 章例例2.8已知x1补=0.1011,x2补

23、=1.0001,y1补=11001,y2补=01001,求x1、x2、y1、y2。解解:x1=0.1011 x2=0.1111 y1=0111 y2=10013.反码表示法反码表示法定点小数和定点整数的反码表示定义如下:对于定点小数,设x反=x0.x1x2xn,共n+1位,其中x0为符号位,则运算方法和运算器第 章 x反=x,0 x12n (22n)+x,(12n)x0 对于定点整数,设x反=x0 x1x2xn,共n+1位,其中x0为符号位,则 x反=x,0 x2n1 (2n+11)+x,(2n1)x0 例例2.9已知x1=0.1110,x2=0.0001,求x1反、x2反。解解:x1反=0.

24、1110 x2反=1.1110 x反=(2.7)x反=(2.8)运算方法和运算器第 章例例2.10已知x1=0100,x2=1101,求x1反、x2反。解解:x1反=00100 x2反=10010由例2.9和例2.10可以看出,不管是定点小数还是定点整数,一个正数的反码的符号位为0,数值位为原来的;一个负数的反码的符号位为1,数值位按位取反。对于真值零,其反码有正零和负零之分,即零的反码表示不惟一。故对于定点小数和定点整数,零的表示各有两种形式:对于定点小数,+0反=0.0000,0反=1.1111;运算方法和运算器第 章 对于定点整数,+0反=00000,0反=11111。如果已知一个数的反

25、码,求它的真值的方法是:对于定点小数,若符号位为0,则该数为正数,反码表示的数即为真值;若符号位为1,则该数为负数,将符号位1还原成负号“”,整数位为0,数值位按位取反。对于定点整数,若符号位为0,则该数为正数,将符号位0还原成正号“+”或缺省,数值位是原来的;若符号位为1,则该数为负数,将符号位1还原成负号“”,数值位按位取反。运算方法和运算器第 章例2.11已知x1反=1.1011,x2反=0.0001,y1反=01001,y2反=11001,求x1、x2、y1、y2。解解:x1=0.0100 x2=0.0001 y1=1001 y2=01104.移码表示法移码表示法移码通常用于表示浮点数

26、的阶码,一定为整数。对于定点整数,设x移=x0 x1x2xn,共n+1位,其中x0为符号位,则移码表示定义为x移=2n+x,2nx2n1 (2.9)运算方法和运算器第 章例2.12已知x1=0001,x2=1100,求x1补、x2补、x1移、x2移。解解:x1补=11111 x2补=01100 x1移=01111 x2移=11100由例2.12可以看出,同一个数的补码与移码表示的区别仅在于符号位刚好相反。因此,若已知一个数的真值要求其移码,可以先求出这个数的补码,再将符号位取反,即可得该数的移码表示;反过来,若已知一个数的移码表示要求其真值,可以先将移码的符号位取反得到该数的补码表示,再将补码

27、转换成该数的真值。运算方法和运算器第 章对于真值整数零,其移码表示是惟一的,即+0移=0移=10000。前面我们介绍了数的四种机器码表示的定义、数的表示范围,以及真值与机器码之间相互转换的方法。若定点数的表示格式如图2.1所示,则各种机器码所表示的数的范围如表2.1所示。从表2.1中我们可以看出,原码和反码的表示范围相同,且所能表示的最大正数和最小负数互为相反数,所能表示的最小正数与最大负数也互为相反数;补码和移码的表示范围相同,移码只能表示定点整数。补码所能表示的最大正数与原码和反码相同,但定点小数所能表示的最小负数为-1,定点整数所能表示的最小负数为2n。运算方法和运算器第 章运算方法和运

28、算器第 章例例2.13已知x=23/64,用8位定点小数表示,其中最高位为符号位,求x原、x反、x补、x补。解解:先将x转换成8位二进制数,得x=0.0101110,则 x原=1.0101110 x反=1.1010001 x补=1.1010010 x补=0.0101110在例2.13中,需要将一个分式转换成小数,其转换方法与十进制数的转换方法相同,如67/103,分子为十进制且分母为10的幂次方,若分母为103则表示小数位有3位,转换为十进制小数为0.067。同样的道理,23/64=10111/26,分子为二进制且分母为2的幂次方,由于分母为26,表示小数位有MmmM6位,转换为二进制小数为0

29、.010111。运算方法和运算器第 章例例2.14若机器字长为32位,浮点数的表示格式中阶符占1位,阶码值占7位,数符占1位,尾数值占23位,阶码和尾数均用补码表示。则该浮点数所能表示的最大正数、最小正数、最大负数和最小负数各是多少?解解:该浮点数的表示格式如图2.4所示。图2.4 浮点数的表示格式运算方法和运算器第 章按照题意,阶码和尾数均用补码表示,根据浮点数的表示格式与真值之间的关系N=M2E,有:当M取最大正数1223,且E也取最大正数271=127时,所表示的浮点数为最大正数,即(1223)2127;当M取最小正数223,且E取最小负数27=128时,所表示的浮点数为最小正数,即22

30、32128=2151;当M取最大负数223,且E取最小负数27=128时,所表示的浮点数为最大负数,即(223)2128=2151;当M取最小负数1,且E取最大正数271=127时,所表示的浮点数为最小负数,即(1)2127=2127。运算方法和运算器第 章例例2.15假设由S、E、M三个域组成一个32位二进制数所表示的非零规格化浮点数x,其中S占1位,E占8位,M占23位,真值表示(注意此例不是IEEE 754标准定义的格式)为x=(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数分别是多少?解解:按照真值与浮点数表示格式之间的关系,有:当S=0,1.M

31、取最大值1+(1223),且E128取最大正数(281)128=127时,所表示的最大正数为1+(1223)2127,即运算方法和运算器第 章 当S=0,1.M取最小值1.0,且E128取最小负数0-128=128时,所表示的最小正数为1.02128,即运算方法和运算器第 章 当S=1,1.M取最小值1.0,且E128取最小负数0128=128时,所表示的最大负数为1.02128,即 当S=1,1.M取最大值1+(1223),且E128也取最大正数(281)128=127时,所表示的最小负数为1+(1223)2127,即运算方法和运算器第 章2.2非数值数据的表示方法非数值数据的表示方法计算机

32、不但要处理数值领域的问题,而且还要处理大量非数值领域的问题,如文字、字符、字符串以及一些专用符号等。2.2.1字符数据的表示字符数据的表示1.字符的表示字符的表示字符是计算机中使用最多的信息形式之一,是人与计算机进行通信、交互的重要媒介。运算方法和运算器第 章在国际上普遍采用ASCII码(美国国家信息交换标准码)来表示字符。ASCII码共有128个字符,其中95个编码(包括大小写各26个字母、10个数字符“0”“9”、标点符号等)对应着计算机终端能键入并可以显示的95个字符,打印机也可打印出这95个字符;另外的33个字符被用来表示控制码,控制计算机某些外部设备的工作特性和某些计算机软件的运行情

33、况。在计算机中,用一个字节表示一个ASCII码,低7位可以给出不同字符的二进制编码,最高位可以作奇偶校验位,用来检查错误,也可以用于西文字符和汉字的区分标识。运算方法和运算器第 章ASCII码对英语特别适合,但对其他语言就不太合适了,如带重音符的法语、带变音符的德语、非英语字母表的俄语等。为解决这个问题,一些主要的计算机公司形成一个联盟,推出了Unicode字符编码系统。目前,Unicode已被绝大多数程序设计语言和操作系统所支持。除以上两种字符编码方式以外,使用比较广泛的编码方式还有ANSI(美国国家标准协会)编码和EBCDIC(扩展二、十进制交换码)。运算方法和运算器第 章2.字符串的表示

34、字符串的表示随着计算机在文字处理与信息管理中的广泛应用,字符串已成为最常用的数据类型之一,许多计算机都提供了字符串操作功能,一些计算机还设计出了能读/写字符串的机器指令。字符串是指连续的一串字符,通常,它们占用主存中连续的多个字节,每个字节存放一个字符的ASCII码。当主存的每一个存储单元由2个、4个或8个字节组成时,在同一个存储单元中,既有按从低位字节向高位字节的顺序存放字符串内容的,也有按从高位字节向低位字节的顺序存放字符串内容的。这两种存放方式都是常用方式,不同的计算机可以选用其中任何一种。运算方法和运算器第 章2.2.2汉字的表示汉字的表示汉字处理技术是我国计算机推广应用工作中必须要解

35、决的问题。汉字数量大,字形复杂,读音多变。常用汉字有7000个左右。和西文相比,汉字处理的主要困难在于汉字的输入、输出和汉字在计算机内部的表示。1.汉字的输入汉字的输入输入码是为使输入设备能将汉字输入到计算机而专门编制的一种代码。目前已出现了数百种汉字输入方案,常见的有国标码、区位码、拼音码和五笔码等。这数百种汉字输入方案按其输入码的编码方法不同可分为三类,即数字编码、拼音编码和字形编码。运算方法和运算器第 章(1)数字编码。常用的数字编码有国标码和区位码,它们是专业人员使用的一种汉字编码,是以数字代码来区分每个汉字的。我国在1981年颁布了通用汉字字符集及其交换码标准GB23121980方案

36、,简称国标码。它把6763个汉字归结在一起称为汉字基本字符集,再根据使用频度分为两级。第一级包括3755个汉字,按拼音排序。第二级包括3008个汉字,按部首排序。此外,还有各种图形符号、数字、字母等682个,总计7445个汉字、符号等。GB23121980规定每个汉字、图形符号都用两个字节表示,每个字节只使用低7位编码,因此最多能表示出128128=16 384个汉字。运算方法和运算器第 章区位码将GB23121980方案中的字符,按其位置划分为94个区,每个区94个汉字(位),区和位组成一个二维数组,每个汉字在数组中对应一个惟一的区位码。区码和位码各用两位十进制数字表示,因此输入一个汉字需按

37、四个数字键。区位码是国标码的变形,两者之间的关系为:“国标码=区位码+2020H”。数字编码输入的优点是无重码,且输入码与内部编码的转换比较方便,缺点是代码难以记忆。运算方法和运算器第 章(2)拼音编码。常用的拼音编码有全拼、双拼、微软拼音、智能ABC等。拼音编码是以汉语拼音为基础的输入方法,凡掌握汉语拼音的人,不需训练和记忆,即可使用。但汉字同音字太多,输入重码率很高,因此按拼音输入后还必须进行同音字选择,影响了输入速度。运算方法和运算器第 章(3)字形编码。常用的字形编码有五笔字型、五笔画等,字形编码是用汉字的形状来进行编码的。汉字总数虽多,但都由一笔一画组成,全部汉字的部件和笔画是有限的

38、。因此,把汉字的笔画部件用字母或数字进行编码,按笔画的顺序依次输入,就能表示一个汉字。例如,五笔字型就是以字形来区分每个汉字的,它的重码少,是目前最具影响力的一种字形编码方法。运算方法和运算器第 章2.汉字在机内的表示汉字在机内的表示汉字在机内的表示由汉字内码来实现,它是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示。英文字符在机内的表示是用七位的ASCII码来实现的,当用一个字节表示时,其最高位为“0”。为了与英文字符能相互区别,汉字内码中两个字节的最高位均规定为“1”。它是在国标码的基础上,将每个字节的最高位置“1”作为汉字标记而组成的。汉字内码与国标码两者之间的关系

39、为:“汉字内码=国标码+8080H”。运算方法和运算器第 章3.汉字的输出与汉字字库汉字的输出与汉字字库显示器是采用图形方式来显示汉字的,汉字的输出通过采用点阵表示的汉字字模码来完成。每个汉字至少需要1616的点阵才能显示,若要获得更美观的字形,则需采用2424、3232、4848等点阵来表示。因此,一个实用汉字系统的字模码要占用很大的存储容量。以1616点阵的字模码为例,每个汉字要占用32个字节,国标两级汉字要占用256K字节。因此字模点阵只能用来构成汉字库,而不能用于机内存储,汉字库中存储了每个汉字的点阵代码。运算方法和运算器第 章在机器中建立汉字库有两种方法。一种是将汉字库存放在硬盘中,

40、每次需要时自动装载到计算机的内存中。用这种方法建立的汉字库称为软字库。另一种是将汉字库固化在ROM(称汉卡)中,再插在计算机的扩展槽中,这样不占内存,只需要安排一个存储器空间给字库即可。用这种方法建立的汉字库称为硬字库。一般常用的汉字输出只有显示输出和打印输出两种形式。输出汉字的过程为:先将输入码转换为汉字内码,然后用汉字内码检索汉字库找到其字形点阵码,再输出汉字。运算方法和运算器第 章2.3定点加法、定点加法、减法运算减法运算定点加法、减法运算既可采用补码也可采用原码和移码进行,不同机器码表示的运算方法也不相同。2.3.1补码加法、补码加法、减法减法1.补码加法补码加法计算机中采用补码进行加

41、法运算,并约定存储单元和运算寄存器中的数都采用补码表示,数据运算结果也用补码表示。定点小数补码加法的运算公式为x补+y补=x+y补 (mod 2)(2.10)运算方法和运算器第 章式(2.10)的含义是:两个定点小数的补码之和等于两个数和的补码。反过来,两个数相加所得到的和的补码等于这两个数补码的和。下面分几种情况来证明这个公式。假设x和y均采用定点小数表示,运算结果仍在定点小数的表示范围之内,即|x|1,|y|1,|x+y|1。(1)x0,y0,则x+y0。由于参加运算的两个数都为正数,故运算结果也一定为正数。正数的补码等于其真值,根据数据补码的定义可得:x补=x,y补=y所以 x补+y补=

42、x+y=x+y补 (mod 2)运算方法和运算器第 章(2)x0,y0,则x+y0或x+y0。当参加运算的两个数中一个为正数,另一个为负数时,运算的结果有可能为正数,也有可能为负数。根据补码的定义可得:x补=x,y补=2+y所以 x补+y补=x+2+y=2+(x+y)此时可能出现两种情况:当x+y0时,2+(x+y)2,2为符号位相加产生的进位,又因为x+y0,进行mod 2运算后,得:x补+y补=x+y=x+y补 (mod 2)运算方法和运算器第 章当x+y0时,2+(x+y)2,又因为x+y0,所以 x补+y补=2+(x+y)=x+y补 (mod 2)(3)x0,y0,则x+y0或x+y0

43、。这种情况与第(2)种情况类似,把x和y的位置对调即可得证。(4)x0,y0,则x+y0。由于参加运算的两个数都为负数,故运算结果也一定为负数。根据补码的定义可得:x补=2+x,y补=2+y所以 x补+y补=2+x+2+y=2+(2+x+y)运算方法和运算器第 章由于x+y为负数,其绝对值又小于1,那么(2+x+y)就一定是小于2而大于1的数,所以进行mod 2运算后,得:x补+y补=2+x+y=2+(x+y)=x+y补(mod 2)因此,在模2定义下,任意两个定点小数的补码之和等于这两个数和的补码。这是补码加法的理论基础,其结论推广到定点整数后得出定点整数补码加法的运算公式为 x补+y补=x

44、+y补 (mod 2n+1)(2.11)在式(2.11)中,假设定点整数补码表示的格式中符号位占1位,尾数占n位。式(2.11)的证明与式(2.10)的证明相似,这里不再重复。运算方法和运算器第 章例例2.16已知x=0.0011,y=0.0111,用单符号位补码计算x+y。解解:x补=0.0011,y补=0.0111所以x+y=0.1010运算方法和运算器第 章例例2.17已知x=0.1101,y=-0.0011,用单符号位补码计算x+y。解解:x补=0.1101,y补=1.1101(在模2定义下,符号位相加向前产生的进位要丢掉)所以x+y=0.1010运算方法和运算器第 章例例2.18已知

45、x=+1001,y=-0101,用单符号位补码计算x+y。解解:x补=01001,y补=11011(在模2n+1定义下,符号位相加向前产生的进位要丢掉)所以x+y=+0100运算方法和运算器第 章由例2.16、例2.17和例2.18可以看出,定点小数加法运算与定点整数加法运算的区别仅在于小数点的位置不同而已,即定点小数的小数点在符号位之后,而定点整数的小数点在机器码的最后。实际上,对于定点数的其他运算,定点小数与定点整数的区别也仅在于小数点的位置不同而已,运算规则完全相同。运算方法和运算器第 章2.补码减法补码减法计算机中补码减法运算是转换成补码加法运算来实现的,它们使用同一加法器电路,从而简

46、化了运算器的设计。定点小数补码减法的运算公式为 x补y补=xy补 =x补+y补(mod 2)(2.12)将式(2.10)中y换成y,得x+(y)补=x补+y补,即xy补=x补+y补运算方法和运算器第 章所以这里只要证明x补y补=x补+y补,即y补=y补,式(2.12)即可得证。现证明如下:因为x+y补=x补+y补 (mod 2)所以 y补=x+y补x补(2.13)又因为 xy补=x补+y补 (mod 2)所以y补=xy补x补 (2.14)运算方法和运算器第 章将式(2.13)和式(2.14)相加得y补+y补=x+y补x补+xy补x补 =(x+y补+xy补)x补x补 =x+x补x补x补 =x补+

47、x补x补x补 =0因此 y补=y补 (mod 2)(2.15)由式(2.15)可以看出,已知y补求y补,实际上就是求y补的相反数,这类似于x86汇编语言中的NEG指令,计算方法是:将y补包括符号位一起取反并在末位加1,即可得到y补。运算方法和运算器第 章因此,在模2定义下,任意两个定点小数的补码之差等于这两个数差的补码。其结论推广到定点整数后得出定点整数补码减法的运算公式为x补y补=xy补=x补+y补(mod 2n+1)(2.16)在式(2.16)中,假设定点整数补码表示的格式中符号位占1位,尾数占n位。式(2.16)的证明与式(2.12)的证明相似,这里不再重复。运算方法和运算器第 章例例2

48、.19已知x补=0.1011,y补=1.0011,求x补、y补。解解:x补=1.0100+0.0001=1.0101 y补=(y)补=0.1100+0.0001=0.1101例例2.20已知x=0.0001,y=0.0101,用单符号位补码计算xy。解解:x补=1.1111,y补=1.1011运算方法和运算器第 章(在模2定义下,符号位相加向前产生的进位要丢掉)所以 xy=0.0110运算方法和运算器第 章例例2.21已知x=0.1001,y=-0.0011,用单符号位补码计算x补y补。解解:x补=0.1001,y补=0.0011所以 x补y补=x补+y补=0.1100运算方法和运算器第 章例

49、例2.22已知x=1101,y=1010,用单符号位补码计算xy。解解:x补=10011,y补=01010所以 xy=0011运算方法和运算器第 章3.溢出的概念与判断方法溢出的概念与判断方法在定点小数机器中,数据的表示范围为|x|1(小数补码表示的最小负数除外);在定点整数机器中,假设定点整数补码表示的格式中符号位占1位,尾数占n位,则数据的表示范围为|x|2n(整数补码表示的最小负数除外)。当定点数的运算结果超出了定点数所能表示的范围时,称运算结果发生溢出。浮点数的溢出及判断将在2.8节讨论。由于补码减法也是转换成补码加法进行运算的,因此,下面我们以5位定点整数补码(其中含1位符号位)的加

50、法为例来说明在定点加减运算中出现溢出时的特点。运算方法和运算器第 章例例2.23两个5位二进制整数补码相加,可能会出现的六种不同情况举例。运算方法和运算器第 章在运算中,两个正数相加的结果成为负数,在运算中,两个负数相加的结果成为正数,这两种运算的结果都是错误的。之所以发生错误,是因为运算结果产生了溢出。溢出分为正溢和负溢两种。两个正数相加,若运算结果大于机器所能表示的最大正数,称为正溢。两个负数相加,若运算结果小于机器所能表示的最小负数,称为负溢。运算方法和运算器第 章5位定点整数补码(其中含1位符号位)的表示范围为-16+15,很明显,运算、的正确结果应分别为17和-21,超出了5位定点整

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|