好文档 - 专业文书写作范文服务资料分享网站

计算机组成原理-第二版-唐朔飞著-课后习题详解

天下 分享 时间: 加入收藏 我要投稿 点赞

6. 设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真

值x为何值时,[x]补=[x]原成立。

解:当x为小数时,若x? 0,则 [x]补=[x]原成立;

若x < 0,当x= -1/2时,[x]补=[x]原=1.100 0000,则 [x]补=[x]原成立。

当x为整数时,若x?0,则 [x]补=[x]原成立;

若x< 0,当x= -64时,[x]补=[x]原=1,100 0000,则 [x]补

=[x]原成立。

7. 设x为真值,x*为绝对值,说明[-x*]补=[-x]补能否成立。

解:当x为真值,x*为绝对值时,[-x*]补=[-x]补不能成立。原因如下:

(1)当x<0时,由于[-x*]补是一个负值,而[-x]补是一个正值,因此此时[-x*]补=[-x]补不成立;

(2)当x?0时,由于-x*=-x,因此此时 [-x*]补=[-x]补的结论成立。

8. 讨论若[x]补>[y]补,是否有x>y?

解:若[x]补>[y]补,不一定有x>y。 [x]补 > [y]补时 x > y的结论只在 x > 0且y > 0,及 x<0且y<0时成立。

由于正数补码的符号位为0,负数补码的符号位为1,当x>0、 y<0时,有x>y,但则[x]补<[y]补;同样,当x<0、 y >0时,有x < y,但[x]补>[y]补。

9. 当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)? 解:真值和机器数的对应关系如下: 9BH 原码 补码 反码 移码 无符号数 对应十进制数 -27 -101 -100 +27 155 FFH 原码 补码 反码 移码 无符号数 对应十进制数 -128 -1 -0 +128 256 10. 在整数定点机中,设机器数采用1位符号位,写出±0的原码、补码、反码和移码,得出什么结论? 解:0的机器数形式如下:(假定机器数共8位,含1位符号位在内) 真值 原码 补码 反码 移码 +0 0 000 0000 0 000 0000 0 000 0000 1 000 0000 -0 1 000 0000 0 000 0000 1 111 1111 1 000 0000 结论:0的原码和反码分别有+0和-0两种形式,补码和移码只有一种形式,且补码和移码数值位相同,符号位相反。

11. 已知机器数字长为4位(含1位符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。 整数定点机 小数定点机 原码 补码 反码 真值 原码 补码 反码 真值 0,000 0,001 0,010 0,011 0,100 0,101 0,110 0,111 1,000 1,001 1,010 1,011 1,100 1,101 1,110 1,111 无 0,000 0,001 0,010 0,011 0,100 0,101 0,110 0,111 0,000 1,111 1,110 1,101 1,100 1,011 1,010 1,001 1,000 0,000 0,001 0,010 0,011 0,100 0,101 0,110 0,111 1,111 1,110 1,101 1,100 1,011 1,010 1,001 1,000 无 +0 1 2 3 4 5 6 7 -0 -1 -2 -3 -4 -5 -6 -7 -8 0.000 0.001 0.010 0.011 0.100 0.101 0.110 0.111 1.000 1.001 1.010 1.011 1.100 1.101 1.110 1.111 无 0.000 0.001 0.010 0.011 0.100 0.101 0.110 0.111 0.000 1.111 1.110 1.101 1.100 1.011 1.010 1.001 1.000 0.000 0.001 0.010 0.011 0.100 0.101 0.110 0.111 1.111 1.110 1.101 1.100 1.011 1.010 1.001 1.000 无 +0 0.125 0.250 0.375 0.500 0.625 0.750 0.875 -0 -0.125 -0.250 -0.375 -0.500 -0.625 -0.750 -0.875 -1

12. 设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、-27/1024、7.375、-86.5所对应的机器数。要求如下:

(1)阶码和尾数均为原码。 (2)阶码和尾数均为补码。

(3)阶码为移码,尾数为补码。 解:据题意画出该浮点数的格式: 阶符1位 阶码4位 数符1位 尾数10位 将十进制数转换为二进制:x1= 51/128= 0.0110011B= 2-1 * 0.110 011B

x2= -27/1024= -0.0000011011B =

2-5*(-0.11011B)

x3=7.375=111.011B=23*0.111011B

x4=-86.5=-1010110.1B=27*(-0.10101101B)

则以上各数的浮点规格化数为:

(1)[x1]浮=1,0001;0.110 011 000 0 [x2]浮=1,0101;1.110 110 000 0 [x3]浮=0,0011;0.111 011 000 0 [x4]浮=0,0111;1.101 011 010 0 (2)[x1]浮=1,1111;0.110 011 000 0 [x2]浮=1,1011;1.001 010 000 0 [x3]浮=0,0011;0.111 011 000 0 [x4]浮=0,0111;1.010 100 110 0 (3)[x1]浮=0,1111;0.110 011 000 0 [x2]浮=0,1011;1.001 010 000 0 [x3]浮=1,0011;0.111 011 000 0 [x4]浮=1,0111;1.010 100 110 0

13. 浮点数格式同上题,当阶码基值分别取2和16时: (1)说明2和16在浮点数中如何表示。 (2)基值不同对浮点数什么有影响?

(3)当阶码和尾数均用补码表示,且尾数采用规格化形式,给出两种情况下所能表示的最大正数和非零最小正数真值。 解:(1)阶码基值不论取何值,在浮点数中均为隐含表示,即:2和16不出现在浮点格式中,仅为人为的约定。

(2)当基值不同时,对数的表示范围和精度都有影响。即:在浮点格式不变的情况下,基越大,可表示的浮点数范围越大,但浮点数精度越低。 (3)r=2时,

最大正数的浮点格式为:0,1111;0.111 111 111 1

其真值为:N+max=215×(1-2-10)

非零最小规格化正数浮点格式为:1,0000;0.100 000 000 0

其真值为:N+min=2-16×2-1=2-17

r=16时,

最大正数的浮点格式为:0,1111;0.1111 1111 11

其真值为:N+max=1615×(1-2-10)

非零最小规格化正数浮点格式为:1,0000;0.0001 0000 00

-16-1-17

其真值为:N+min=16×16=16

14. 设浮点数字长为32位,欲表示±6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取1位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么?

解:若要保证数的最大精度,应取阶码的基值=2。

若要表示±6万间的十进制数,由于32768(215)< 6万 <65536(216),则:阶码除阶符外还应取5位(向上取2的幂)。 故:尾数位数=32-1-1-5=25位

25(32) 该浮点数格式如下: 阶符(1阶码(5位) 数符(1尾数(25位) 位) 位) 按此格式,该浮点数上溢的条件为:阶码?25

15. 什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式?

解:机器零指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码表示(此时阶码为最小阶、尾数为零,而移码的最小码值正好为“0”,补码的零的形式也为“0”,拼起来正好为一串0的形式)。

16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。 (1)无符号数;

(2)原码表示的定点小数。 (3)补码表示的定点小数。 (4)补码表示的定点整数。 (5)原码表示的定点整数。

(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出其正数和负数的表示范围。 (7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。 解:(1)无符号整数:0 ~ 216 - 1,即:0~ 65535;

无符号小数:0 ~ 1 - 2-16 ,即:0 ~ 0.99998;

(2)原码定点小数:-1 + 2-15~1 - 2-15 ,即:-0.99997~0.99997 (3)补码定点小数:- 1~1 - 2-15 ,即:-1~0.99997

1515

(4)补码定点整数:-2~2 - 1 ,即:-32768~32767 (5)原码定点整数:-215 + 1~215 - 1,即:-32767~32767

(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:

最大负数= 1,11 111;1.000 000 001 ,即 -2-9?2-31

最小负数= 0,11 111;1.111 111 111,即 -(1-2-9)?231 则负数表示范围为:-(1-2-9)?231 —— -2-9?2-31

最大正数= 0,11 111;0.111 111 111,即 (1-2-9)?231 最小正数= 1,11 111;0.000 000 001,即 2-9?2-31 则正数表示范围为:2-9?2-31 ——(1-2-9)?231

(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则 最大负数=1,00 000;1.011 111 111,即 -2-1?2-32 最小负数=0,11 111;1.000 000 000,即 -1?231 则负数表示范围为:-1?231 —— -2-1?2-32

最大正数=0,11 111;0.111 111 111,即 (1-2-9)?231 最小正数=1,00 000;0.100 000 000,即 2-1?2-32 则正数表示范围为:2-1?2-32 ——(1-2-9)?231

17. 设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。

[x1]原=0.001 1010;[y1]补=0.101 0100;[z1]反=1.010 1111; [x2]原=1.110 1000;[y2]补=1.110 1000;[z2]反=1.110 1000; [x3]原=1.001 1001;[y3]补=1.001 1001;[z3]反=1.001 1001。 解:算术左移一位:

[x1]原=0.011 0100;正确

[x2]原=1.101 0000;溢出(丢1)出错 [x3]原=1.011 0010;正确

[y1]补=0.010 1000;溢出(丢1)出错 [y2]补=1.101 0000;正确

[y3]补=1.011 0010;溢出(丢0)出错 [z1]反=1.101 1111;溢出(丢0)出错 [z2]反=1.101 0001;正确

[z3]反=1.011 0011;溢出(丢0)出错 算术左移两位:

[x1]原=0.110 1000;正确

[x2]原=1.010 0000;溢出(丢11)出错 [x3]原=1.110 0100;正确

[y1]补=0.101 0000;溢出(丢10)出错 [y2]补=1.010 0000;正确

[y3]补=1.110 0100;溢出(丢00)出错 [z1]反=1.011 1111;溢出(丢01)出错 [z2]反=1.010 0011;正确

[z3]反=1.110 0111;溢出(丢00)出错 算术右移一位:

[x1]原=0.000 1101;正确 [x2]原=1.011 0100;正确

[x3]原=1.000 1100(1);丢1,产生误差 [y1]补=0.010 1010;正确 [y2]补=1.111 0100;正确

[y3]补=1.100 1100(1);丢1,产生误差 [z1]反=1.101 0111;正确

[z2]反=1.111 0100(0);丢0,产生误差 [z3]反=1.100 1100;正确 算术右移两位:

[x1]原=0.000 0110(10);产生误差 [x2]原=1.001 1010;正确 [x3]原=1.000 0110(01);产生误差 [y1]补=0.001 0101;正确 [y2]补=1.111 1010;正确 [y3]补=1.110 0110(01);产生误差 [z1]反=1.110 1011;正确 [z2]反=1.111 1010(00);产生误差 [z3]反=1.110 0110(01);产生误差

18. 试比较逻辑移位和算术移位。 解:逻辑移位和算术移位的区别:

逻辑移位是对逻辑数或无符号数进行的移位,其特点是不论左移还是右移,空出位均补0,移位时不考虑符号位。

算术移位是对带符号数进行的移位操作,其关键规则是移位时符号位保持不变,空出位的补入值与数的正负、移位方向、采用的码制等有关。补码或反码右移时具有符号延伸特性。左移时可能产生溢出错误,右移时可能丢失精度。

19. 设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。 (1)A=9/64, B=-13/32,求A+B。 (2)A=19/32,B=-17/128,求A-B。 (3)A=-3/16,B=9/32,求A+B。

计算机组成原理-第二版-唐朔飞著-课后习题详解

6.设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时,[x]补=[x]原成立。解:当x为小数时,若x?0,则[x]补=[x]原成立;若x<0,当x=-1/2时,[x]补=[x]原=1.1000000,则[x]补=[x]原成立。当x为整
推荐度:
点击下载文档文档为doc格式
9pnjy6qt8o85bn78arf2570pk9t82300b5a
领取福利

微信扫码领取福利

微信扫码分享