《计算机组成原理》课件第2章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《计算机组成原理》课件第2章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理 计算机 组成 原理 课件
- 资源描述:
-
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.移码表示法移码表示法移码通常用于表示浮点数
展开阅读全文