新编计算机组成原理习题与解析_第1页
新编计算机组成原理习题与解析_第2页
新编计算机组成原理习题与解析_第3页
新编计算机组成原理习题与解析_第4页
新编计算机组成原理习题与解析_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、新编计算机组成原理习题与解析1. 单项选择题【例1】在浮点数运算中溢出的条件是      。A. 阶码最高位有进位B. 结果尾数溢出C. 阶码溢出D. 尾数规格化后阶码溢出解:在浮点数运算中,只有尾数规格化后阶码溢出,才表示运算结果溢出。本题答案为D。【例2】在浮点数运算中,下溢出指的是      。A. 运算结果的绝对值小于机器所能表示的最小绝对值B. 运算的结果小于机器所能表示的最小负数C. 运算的结果小于机器所能表示的最小正数D. 运算结果的最低有效位产生的错误解:在浮点数运算中,下溢出指

2、的是运算的结果小于机器所能表示的最小负数,主要表现是规格化后阶码小于其能表示的最小负数。本题答案为B。【例3】浮点加减中的对阶是指      。A. 将较小的一个阶码调整到与较大的一个阶码相同B. 将较大的一个阶码调整到与较小的一个阶码相同C. 将被加数的阶码调整到与加数的阶码相同D. 将加数的阶码调整到与被加数的阶码相同解:浮点加减中的对阶是将较小的一个阶码调整到与较大的一个阶码相同。本题答案为A。【例4】两个浮点数相加,阶码用原码表示,一个数的阶码为7,另一个数的阶码为10,则需要将阶码较小的浮点数的小数点   

3、;   。A. 左移2位                B. 左移3位                C. 右移2位         D. 右移3位解:在对阶时总是让小阶码向大阶码看齐,这里将小阶码变

4、为10,对应的尾数相应减小,即将小阶码的尾数右移3位,相当于它的小数点左移3位。本题答案为B。【例5】两个浮点数相加,阶码为5位(含1位符号位),阶码用二进制移码表示,x的阶码为11010(10),y的阶码为11000(8),则需要将阶码较小的浮点数的尾数      。A. 左移2位                B. 左移3位      

5、;          C. 右移2位         D. 右移3位解:x的阶码为11010,即x=01010,对应十进制数10,y的阶码为11000,即y=01000,对应十进制数8,两者相差2,所以需要将阶码较小的浮点数y的尾数右移2位。本题答案为C。也可以这样来求解,因为x移=11010,y移=11000,所以有 x-y移=x移-y移+ 2n=11010-11000+10000=10010+10000=10010,则x-

6、y=00010,为十进制数2。【例6】若浮点数采用补码表示,判断加/减运算的结果是否为规格化数的方法是      。A. 阶符和数符相同                                  

7、60;     B. 阶符和数符相异C. 数符和尾数最高位相同                              D. 数符和尾数最高位相异解:一个浮点数用二进制补码表示,若符号位与尾数最高位相异,则该数是规格化表示。本题答案为D。2. 填空题【例7】在浮点加减

8、法运算中,当运算结果的尾数的绝对值大于1时,需要对结果进行  ,其操作是    。解:本题答案是: 向右规格化 尾数右移一位,右边补一个0,阶码减1,直到尾数绝对值0.5。【例8】设两个浮点数为x=201×0.1101,y=211×(-0.1010)。假设尾数在计算机中以补码表示(4位尾数,另有2位符号位),阶码(2位阶码)以原码表示(另有2位阶符位),求x+y的结果是      。解:将x、y转换成浮点数据格式,x浮=0001,00.1101,y浮=0011,11.0110,相加运算的步骤如下

9、。  对阶:求得阶差为11-01=10,即2,因此将x的尾数右移两位,得x浮=00 11,00.0011 01。  对尾数求和,得x+y浮=00 11,11.1001 01。  规格化:由于符号位和第一位数相等,不是规格化数,故向左规格化,得x+y浮=00 10,11.0010 10。  舍入:采用0舍1入法,得x+y浮=00 10,11.0011。  判溢: 数据无溢出,因此结果为x+y=2010×(-0.1101)。本题答案为:2010×(-0.1101)。3. 问答题【例9】什么是浮点数的溢出?什么情况下会发生上溢出?

10、什么情况下会发生下溢出?解:浮点数的运算结果可能出现以下几种情况。l       阶码上溢出:当一个正指数超过了最大允许值,此时,浮点数发生上溢出(即向方向溢出)。如果结果是正数,则发生正上溢出(有的机器把值置为+);如果是负数,则发生负上溢出(有的机器把值置为)。这种情况为软件故障,通常要引入溢出故障处理程序来处理。l       阶码下溢出:当一个负指数比最小允许值还小,此时,浮点数发生下溢出。一般机器把下溢出时的值置为0(+0或0)。l   

11、;    尾数溢出:当尾数最高有效位有进位时,发生尾数溢出。此时,进行“右规”操作:尾数右移一位,阶码加1,直到尾数不溢出为止。此时,只要阶码不发生上溢出,则浮点数不会溢出。l       非规格化尾数:当数值部分高位出现0时,尾数为非规格化形式。此时,进行“左规”操作,即尾数左移一位,阶码减1,直到尾数为规格化形式为止。【例10】已知两个实数x=-68,y=-8.25,它们在C语言中定义为float型变量,分别存放在寄存器A和B中。另外,还有两个寄存器C和D。A、B、C、D都是32位的寄存器。请回答下列

12、问题(要求用十六进制表示二进制序列):(1)寄存器A和B中的内容分别是什么?(2)x和y相加后的结果存放在C寄存器中,寄存器C中的内容是什么?(3)x和y相减后的结果存放在D寄存器中,寄存器D中的内容是什么?解:(1)在计算机中,float型的变量都被表示成IEEE 754单精度格式。x=-68=-(1000100)2=-1.0001×26,符号位为1,阶码为127+6=128+5=(1000 0101)2,尾数为1.0001,所以小数部分为:000 1000 0000 0000 0000 0000,合起来后整个浮点数表示为:1 1000 0101 000 1000 0000 000

13、0 0000 0000,写成十六进制为:C2880000H。y=-8.25=-(1000.01)2=-1.00001×23,符号位为1,阶码为127+3=128+2=(1000 0010)2,尾数为1.00001,所以小数部分为:000 0100 0000 0000 0000 0000,合起来后整个浮点数表示为:1 1000 0010 000 0100 0000 0000 0000 0000,写成十六进制为C1040000H。因此,寄存器A和B中的内容分别是C2880000H、C1040000H。(2)两个浮点数相加的步骤如下。  对阶:Ex=10000101,Ey=100

14、00010,则Ex-Ey补=Ex补+-Ey补=10000101+ 01111110=00000011。Ex大于Ey,所以对y进行对阶。对阶后,y=-0.00100001×26。  尾数相加:x的尾数为-1. 000 1000 0000 0000 0000 0000,y的尾数为-0. 001 0000 1000 0000 0000 0000,用原码加法运算实现,两数符号相同,做加法,结果为-1.001 1000 1000 0000 0000 0000,即x加y的结果为-1.001 1000 1×26,所以符号位为1,尾数为:001 1000 1000 0000 00

15、00 0000,阶码为127+6=128+5,即:1000 0101。合起来为:1 1000 0101 001 1000 1000 0000 0000 0000,转换为十六进制形式为:C2988000H。所以,寄存器C中的内容是C2988000H。(3)两个浮点数相减的步骤同加法,对阶的结果也相同,只是尾数相减。x的尾数为-1. 000 1000 0000 0000 0000 0000,y的尾数为-0. 001 0000 1000 0000 0000 0000。用原码减法运算实现,两数符号相同做减法时,符号位取大数的符号,即为负数,所以为1。数值部分是大数加小数负数的补码: 

16、0;          1.000    1000   0000    0000    0000    0000+          1.110    1111   1000    0000 

17、;   0000    0000            0.111    0111   1000    0000    0000    0000x减y的结果为-0.11101111×26=-1.1101111×25,所以:符号位为1,尾数为110 1111 0000 0000 0

18、000 0000,阶码为127+5=128+4,即1000 0100。合起来为:1 1000 0100 110 1111 0000 0000 0000 0000,转换为十六进制形式为:C26F0000H,所以寄存器D中的内容是C26F0000H。【例11】两个规格化浮点数求和、差,最后对结果规格化时,能否确定需要右规的次数?能否确定需要左规的次数?解:两个n位数相加、减,其和、差最多为n+1位,因此有可能需要右规,但右规最多一次。由于异号数相加,或同号数相减,其和、差的最少位数无法确定,因此左规的次数也无法确定,但次数最多不会超过尾数的字长,即n次。【例12】两个规格化浮点数相乘时,是否可能需

19、要右规?为什么?是否可能需要左规?若需要,能否确定左规的次数?解:规格化浮点数相乘时,只有当两个浮点乘数的尾数均为-1时才需要右规。因为(-1)×(-1)=1,-1为规格化数,而+1不是,所以需要右规,使尾数成为+1/2。规格化浮点数相乘时需要左规。规格化尾数的范围为:1/2|M|1,其积的范围为:1/4|积|<1,因此最多左规一次。【例13】两个规格化浮点数相除,是否可能需要左规?为什么?是否可能需要右规?若需要,能否确定右规的次数?解:规格化浮点数相除时,只有一种情况需要左规,即当被除数的尾数为1/2、除数的尾数为-1时,需要左规。因为(1/2)/(-1)=-1/2,1/2

20、和-1均为规格化数,而-1/2不是,所以需要左规一次,使尾数成为-1。规格化浮点数相除时,被除数、除数均为规格化数,规格化尾数的范围均为:1/2|M|1,所以商的绝对值范围为:1/2|商|<2。因此需要右规,但最多右规一次。【例14】设阶码为5位(包括2位阶符),尾数为8位(包括2位数符),阶码、尾数均用补码表示,请完成下列取值的x+y、x-y运算:(1)x=2-011×0.100101,y=2-010×(-0.011110)(2)x=2-101×(-0.010110),y=2-100×0.010110解:(1)将y规格化后得:y=2-011

21、15;(-0.111100),x浮=1101,00.100101,y浮=1101,11.000100,-y浮=1101,00.111100。 对阶E补=Ex补+-Ey补=1101+0011=0000,所以Ex=Ey。 尾数相加           相加                    

22、0;                                              相减    &

23、#160;      00.100101                                          

24、60;               00.100101+    11.000100                             

25、                     +   00.111100           11.101001               &

26、#160;                                          01.100001x+y浮=1101,11.101001,左规后x+y浮=1100,11.010

27、010,所以x+y=2-100×(-0.101110)。x-y浮=1101,01.100001,右规后x-y浮=1110,00.1100001,舍入处理得x-y浮= 1110,00.110001,所以x-y=2-110×0.110001。(2)x浮=1011,11.101010,y浮=1100,00.010110,-y浮=1100,11.101010。 对阶E补=Ex补+-Ey补=1011+0100=1111,所以E=-1,x浮=1100,11.110101(0)。 尾数相加        &#

28、160;  相加                                                

29、;                   相减           11.110101(0)                   &

30、#160;                                 11.110101(0)+    00.010110          &

31、#160;                                       +   11.101010        

32、   00.001011(0)                                                     11.011111(0)x+y浮=1100,00.001011(0),左规后x+y浮=1110,00.1011000,所以x+y=2-110×0.1011B。x-y浮=1100,11.011111(0),所以x-y=2-100×(-0.100001B)。【例15】已知两个浮点数:A=(-0.010011)×2-010,B=(+0.110111)×2+001。假定阶码和尾数都用补码表示,阶

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论