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

下载本文档

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

文档简介

新编计算机组成原理习题与解析1、单项选择题【例1】在浮点数运算中溢出得条件就是

。A、阶码最高位有进位B、结果尾数溢出C、阶码溢出D、尾数规格化后阶码溢出解:在浮点数运算中,只有尾数规格化后阶码溢出,才表示运算结果溢出。本题答案为D。【例2】在浮点数运算中,下溢出指得就是

。A、运算结果得绝对值小于机器所能表示得最小绝对值B、运算得结果小于机器所能表示得最小负数C、运算得结果小于机器所能表示得最小正数D、运算结果得最低有效位产生得错误解:在浮点数运算中,下溢出指得就是运算得结果小于机器所能表示得最小负数,主要表现就是规格化后阶码小于其能表示得最小负数。本题答案为B。【例3】浮点加减中得对阶就是指

。A、将较小得一个阶码调整到与较大得一个阶码相同B、将较大得一个阶码调整到与较小得一个阶码相同C、将被加数得阶码调整到与加数得阶码相同D、将加数得阶码调整到与被加数得阶码相同解:浮点加减中得对阶就是将较小得一个阶码调整到与较大得一个阶码相同。本题答案为A.【例4】两个浮点数相加,阶码用原码表示,一个数得阶码为7,另一个数得阶码为10,则需要将阶码较小得浮点数得小数点

。A、左移2位

B、左移3位

C、右移2位

D、右移3位解:在对阶时总就是让小阶码向大阶码瞧齐,这里将小阶码变为10,对应得尾数相应减小,即将小阶码得尾数右移3位,相当于它得小数点左移3位。本题答案为B。【例5】两个浮点数相加,阶码为5位(含1位符号位),阶码用二进制移码表示,x得阶码为11010(10),y得阶码为11000(8),则需要将阶码较小得浮点数得尾数

。A、左移2位

B、左移3位

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—y=00010,为十进制数2。【例6】若浮点数采用补码表示,判断加/减运算得结果就是否为规格化数得方法就是

.A、阶符与数符相同

B、阶符与数符相异C、数符与尾数最高位相同

D、数符与尾数最高位相异解:一个浮点数用二进制补码表示,若符号位与尾数最高位相异,则该数就是规格化表示。本题答案为D。2、填空题【例7】在浮点加减法运算中,当运算结果得尾数得绝对值大于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,相加运算得步骤如下.

对阶:求得阶差为11-01=10,即2,因此将x得尾数右移两位,得[x]浮=0011,00、001101。

对尾数求与,得[x+y]浮=0011,11、100101.

规格化:由于符号位与第一位数相等,不就是规格化数,故向左规格化,得[x+y]浮=0010,11、001010。

舍入:采用0舍1入法,得[x+y]浮=0010,11、0011.

判溢:数据无溢出,因此结果为x+y=2010×(-0、1101).本题答案为:2010×(-0、1101)。3、问答题【例9】什么就是浮点数得溢出?什么情况下会发生上溢出?什么情况下会发生下溢出?解:浮点数得运算结果可能出现以下几种情况。l

阶码上溢出:当一个正指数超过了最大允许值,此时,浮点数发生上溢出(即向∞方向溢出)。如果结果就是正数,则发生正上溢出(有得机器把值置为+∞);如果就是负数,则发生负上溢出(有得机器把值置为-∞).这种情况为软件故障,通常要引入溢出故障处理程序来处理.l

阶码下溢出:当一个负指数比最小允许值还小,此时,浮点数发生下溢出。一般机器把下溢出时得值置为0(+0或—0)。l

尾数溢出:当尾数最高有效位有进位时,发生尾数溢出.此时,进行“右规”操作:尾数右移一位,阶码加1,直到尾数不溢出为止.此时,只要阶码不发生上溢出,则浮点数不会溢出.l

非规格化尾数:当数值部分高位出现0时,尾数为非规格化形式。此时,进行“左规"操作,即尾数左移一位,阶码减1,直到尾数为规格化形式为止。【例10】已知两个实数x=-68,y=—8、25,它们在C语言中定义为float型变量,分别存放在寄存器A与B中。另外,还有两个寄存器C与D。A、B、C、D都就是32位得寄存器。请回答下列问题(要求用十六进制表示二进制序列):(1)寄存器A与B中得内容分别就是什么?(2)x与y相加后得结果存放在C寄存器中,寄存器C中得内容就是什么?(3)x与y相减后得结果存放在D寄存器中,寄存器D中得内容就是什么?解:(1)在计算机中,float型得变量都被表示成IEEE754单精度格式。x=—68=-(1000100)2=—1、0001×26,符号位为1,阶码为127+6=128+5=(10000101)2,尾数为1、0001,所以小数部分为:00010000000000000000000,合起来后整个浮点数表示为:11000010100010000000000000000000,写成十六进制为:C2880000H。y=—8、25=-(1000、01)2=-1、00001×23,符号位为1,阶码为127+3=128+2=(10000010)2,尾数为1、00001,所以小数部分为:00001000000000000000000,合起来后整个浮点数表示为:11000001000001000000000000000000,写成十六进制为C1040000H。因此,寄存器A与B中得内容分别就是C2880000H、C1040000H.(2)两个浮点数相加得步骤如下。

对阶:Ex=10000101,Ey=10000010,则[Ex—Ey]补=[Ex]补+[-Ey]补=10000101+01111110=00000011。Ex大于Ey,所以对y进行对阶。对阶后,y=—0、00100001×26.

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

1、000

1000

0000

0000

0000

0000+

1、110

1111

1000

0000

0000

0000

0、111

0111

1000

0000

0000

0000x减y得结果为-0、11101111×26=-1、1101111×25,所以:符号位为1,尾数为11011110000000000000000,阶码为127+5=128+4,即10000100。合起来为:11000010011011110000000000000000,转换为十六进制形式为:C26F0000H,所以寄存器D中得内容就是C26F0000H。【例11】两个规格化浮点数求与、差,最后对结果规格化时,能否确定需要右规得次数?能否确定需要左规得次数?解:两个n位数相加、减,其与、差最多为n+1位,因此有可能需要右规,但右规最多一次.由于异号数相加,或同号数相减,其与、差得最少位数无法确定,因此左规得次数也无法确定,但次数最多不会超过尾数得字长,即n次。【例12】两个规格化浮点数相乘时,就是否可能需要右规?为什么?就是否可能需要左规?若需要,能否确定左规得次数?解:规格化浮点数相乘时,只有当两个浮点乘数得尾数均为-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与—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×(—0、111100),[x]浮=1101,00、100101,[y]浮=1101,11、000100,[-y]浮=1101,00、111100。①对阶[ΔE]补=[Ex]补+[-Ey]补=1101+0011=0000,所以Ex=Ey。②尾数相加

相加

相减

00、100101

00、100101+

11、000100

+

00、111100

11、101001

01、100001[x+y]浮=1101,11、101001,左规后[x+y]浮=1100,11、010010,所以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)。②尾数相加

相加

相减

11、110101(0)

11、110101(0)+

00、010110

11、101010

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.假定阶码与尾数都用补码表示,阶码4位(含1位符号位),尾数7位(含1位符号位).试按规格化补码加法规则与步骤,采用0舍1入法,求[A+B]补就是多少?解:求[A+B]补得步骤如下。①求运算中所需得数据[A]补=([EA]补,[MA]补)=(1、110,1、101101)。[B]补=([EB]补,[MB]补)=(0、001,0、110111)。[-EB]补=1、111。②求阶差[△E]补=[EA]补—[EB]补=[EA]补+[-EB]补=1、110+1、111=1、101。③对阶[A]补变为[A']补,[A']补=([E’A]补,[M'A]补)=(0、001,1、111101)。④尾数求与[MA]补+[M’B]补=11、111101+00、110111=00、110100。[A+B]补=(0、001,00、110100)。⑤规格化已就是规格化数。⑥舍入需要舍入。采用0舍1入法,所

温馨提示

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

评论

0/150

提交评论