计算机组成原理前3章课后习题参考答案-
⽩中英第五版计算机组成原理课后习题参考答案
第⼀章计算机系统概述
4、冯?诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?答:冯?诺依曼型计算机的主要设计思想是存储程序和程序控制,其中存储程序是指将程序和数据事先存放到存储器中,⽽程序控制是指控制器依据存储的程序来控制全机协调地完成计算任务。总体来讲,存储程序并按地址顺序执⾏,这就是冯?诺依曼型计算机的主要设计思想。
5、什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?
答:见教材P8和P10。
7、指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?
答:见教材P10。
第⼆章运算⽅法和运算器
1、写出下列各整数的原码、反码、补码表⽰(⽤8位⼆进制数)。
3、有⼀个字长为32位的浮点数,符号位1位,阶码8位,⽤移码表⽰,尾数23位,⽤补码表⽰,基数为2,请写出:
(1)最⼤数的⼆进制表⽰
阶码⽤移码表⽰,题中并未说明具体偏移量,故此处按照移码的定义,即采⽤偏移量为27=128,则此时阶码E的表⽰范围为0000 0000~1111 1111,即0~255,则在上述条件下,浮点数为最⼤数的条件如下:
所以最⼤数的⼆进制表⽰为:0 1111 1111 1111 1111 1111 1111 1111 1111 111
对应⼗进制真值为:+(1-2-23)×2127
(2)最⼩数的⼆进制表⽰
浮点数为最⼩数的条件如下:
所以最⼩数的⼆进制表⽰为:1 1111 1111 0000 0000 0000 0000 0000 000
对应⼗进制真值为:-1×2127
(3)规格化数所表⽰数的范围
规格化要求尾数若为补码表⽰,则符号位和最⾼有效位符号必须不同。
(A)浮点数为最⼤正数的条件如下:
所以最⼤正数的⼆进制表⽰为:0 1111 1111 1111 1111 1111 1111 1111 1111 111 对应⼗进制真值为:+(1-2-23)×2127(B)浮点数为最⼩正数的条件如下:
所以最⼩正数的⼆进制表⽰为:0 0000 0000 1000 0000 0000 0000 0000 000 对应⼗进制真值为:+2-1×2-128=+2-129(C)浮点数为最⼤负数的条件如下:
所以最⼤负数的⼆进制表⽰为:0 0000 0000 0111 1111 1111 1111 1111 111 对应⼗进制真值为:-(2-1+2-23)×2-128(D)浮点数为最⼩负数的条件如下:
所以最⼩负数的⼆进制表⽰为:0 0000 0000 0000 0000 0000 0000 0000 000 对应⼗进制真值为:-1
×2127
所以,规格化数所表⽰数的范围如下:
正数 +2-129~+(1-2-23)×2127负数 -2127 ~-(2-1+2-23)×2-128
4、将下列⼗进制数表⽰成IEEE754标准的32位浮点规格化数。(2)-27/64 解:-27/64D=-0.011011B=-1.1011×2-2,则阶码E=-2+127=125,则浮点数为:
5、已知x和y,⽤变形补码计算x+y,同时指出结果是否溢出。
(2)x=11011,y=-10101
解:[x]
浮点数的基数什么意思变补=00,11011,[y]
变补
=11,01011,则
[x]
变补
00,11011
+[y]
变补
11,01011
100,00110
最⾼进位1丢掉,则[x+y]
变补
=00,00110,符号位为00,表⽰结果为正数,且⽆溢出,即:x+y=+00110(3)x=-10110,y=-00001
解:[x]
变补=11,01010,[y]
变补
=11,11111,则
[x]
变补
11,01010
+[y]
变补
11,11111
111,01001
最⾼进位1丢掉,则[x+y]
变补
=11,01001,符号位为11,表⽰结果为负数,且⽆溢出,即:x+y=-10111 6、已知x和y,⽤变形补码计算x-y,同时指出结果是否溢出。
(1)x=11011,y=-11111
解:[x]
变补=00,11011,[y]
变补
=11,00001,[-y]
变补
=00,11111,则
[x]
变补
00,11011
+[- y]
变补
00,11111
01,11010
则[x-y]
变补
=01,11010,符号位为01,表⽰结果为正数,且发⽣正溢。(2)x=10111,y=11011
解:[x]
变补=00,10111,[y]
变补
=00,11011,[-y]
变补
=11,00101,则
[x]
变补
00,10111
+[- y]
变补
11,00101
11,11100
则[x-y]
变补
=11,11100,符号位为11,表⽰结果为负数,且⽆溢出,即x-y=-00100。
7、⽤原码⼀位乘计算x×y。(2)x=-11111,y=-11011
解:根据原码⼀位乘的运算规则,乘积的符号位单独处理x0⊕y0,数值部分为绝对值相乘x*.y*,其中数值部分的运算如下:
由上可得,数值部分的乘积为:x*.y*=0,1101000101,⽽乘积符号位
x0⊕y0=1⊕1=0,则[x.y]
=0,1101000101,即x×y=+1101000101。
8、⽤加减交替法计算x÷y(先乘1个⽐例因⼦变成⼩数)。(2)x=-01011,y=11001 解:按照加减交替原码除法的运算规则,符号位单独处理x0⊕y0,商值由两数绝
对值相除x*/y*求得,且当余数Ri>0,商1,做2Ri-y*运算,当余数Ri<0,商0,做2Ri+y*运算。
根据定点除法的约束条件,⼩(整)数定点机中,被乘数、乘数和商必须均为⼩(整)数。⽽题中被乘数和乘数均为整数,且被乘数⼩于乘数,两者相除结果为⼩数,不符合整数定点机的要求,故可先将被乘数和乘数乘以⼀个⽐例因⼦2-5,将被乘数和乘数变为⼩数,两者相除商也为⼩数,则符合⼩数定点机的要求。乘以⽐例因⼦2-5后,可得:[x]原=1.01011,[y]原
=0.11001,[x*]补=0.01011,[y*]
=0.11001,[-y*]补=1.00111,则加减交替法的运算过程如下:
由上可得,商值为:x*/y*=0.01110,⽽符号位x0⊕y0=1⊕0=1,则[x÷y]