计算机组成原理第六版部分习题答案

[教材P60-61→1(2,3), 3, 6(3), 8(2)]

【1】(2).写出下列各整数的原码、反码、补码表示(用8位二进制)。其中MSB是最高位(符号位),LSB是最低位。(2). -128 (3). -127 

【解】在八位二进制下,-128不能用原码或反码表示,反码只能表示0到127,-0到-127;

(2). -128 = (-100000000)2     [ -128]8位原码 = 无; [ -128] 8位反码 = 无; [ -128] 8位补码 = 10000000;

(3). -127 = (-1111111)2

[ -127]原码 = 11111111;[ -127]反码 = 10000000;[ -127]补码 = 10000001;

【3】有一个字长位32位的浮点数,符号位1位;阶码8位,用移码表示;位数23位,用补码表示;基数为2。请写出:(1).最大数的二进制表示;(2).最小数的二进制表示;(3).规格化数所能表示的范围。

【解】

(1)最大数的二进制表示:E = 11111111; Ms = 0,M = 11…1(23位全1)

即:0  111111  11111111111111111111111 = 2127*(1-2-23)

(2)最小数的二进制表示:E = 11111111; Ms = 0,M = 00…0(23位全0)

即:1  111111  00000000000000000000000= 2127*(-1)

(3)规格化数所能表示的范围:

正最大:E = 11111111; Ms = 0, M = 11…1(23位全1) = 2127*(1-2-23);

正最小:E = 00000000; Ms = 0, M = 10…0(低22位全0) = 2-128*(2-1);

负最大:E = 00000000; Ms = 1, M = 01…1(低22位全1) = - 2-128*(2-1+2-23);

负最小:E = 11111111; Ms = 1, M = 00…0(低23位全0) = - 2127;

规格化数所能表示的范围集合:[- 2127, - 2-128*(2-1+2-23) ] U [2-128*(2-1), 2127*(1-2-23)];

【6】已知x和y,用变形补码计算x-y,同时支出结果是否溢出

(3) x=11011;y=-10011

【解】[x]补 = 00 11011;[y]补 = 11 01101;[-y]补 = 00 10011;

[x]补 = 00 11011 

[-y]补 = 00 10011 

[x-y]补= 01 01110    双符号位为01,结果为正溢出,x-y = 01110;

【8】用原码阵列除法器计算x÷y(先乘一个比例因子变成小数)

(2) x = (-01011)2 = (-11)10;  y =(11001)2 = (25)10;  (这是整数除法)

x = (-01011)2 =  (-0.01011*25)2 ;y = (11001)2 = (0.11001*25)2

【解】[|x|]补 = 0 01011;[|y|]补 = 0 11001; [-|y|]补 = 1 00111;

被除数 X   0 0101100000  → 右补5个0(被除数数值位扩展一倍长度)

+[-|y|]补     1 00111

余数为      1 1001000000  → q0 = 0

+[|y|]补  0 011001

余数为      1 1111010000  → q1 = 0

+[|y|]补  0 0011001

余数为      0 0010011000  → q2 = 1

+[-|y|]补     1 11100111

余数为      0 0000110100  → q3 = 1

+[-|y|]补     1 1 11100111

余数为      0 0000000010  → q4 = 1

+[-|y|]补     1 1 111100111

余数为 1 1111101001  → q5 = 0

+[|y|]补  0 0000 11001  【不够减,则+[|y|]补还原;若够减,则省略此步】

余数为      00000000010  

所以有:x÷y = - 0.01110  余数为:[0.00010]补 = [0.00010]原 = 0.00010

【注】若为小数除法,则余数为:[0.0000000010]补 = [0.0000000010]原

第2.2节、第3次书面作业[教材P61→9(1), 10(2), 11(2), 12(2), 16(较高要求)]

【9】设阶码3位,位数6位,按浮点运算方法,完成下列取值的[x+y],[x-y]计算:

(1). x = 2-011×0.100101, y = 2-010×(-0.011110);

【解】 [x]浮 = 11 101, 0.100101;  [y]浮 = 11 110, -0.011110;  Ex – Ey = 11 101 + 00 010 =11 111

[x]浮 = 11 110, 00.010010(1); [y]浮 = 11 110, 11.100010; [-y]浮 = 11 110, 00. 011110;

[x+y]   00.010010(1)

+ 11.100010

11.110100(1)   尾数规格化后:1.010010    阶码11 100

x + y = 1.010010×2-4  = -0.101110×2-4;

[x-y]   00.010010(1)

+ 00.011110

00.110000(1)   尾数规格化后:0.110000    阶码11 110

x - y = 0.110001×2-2 ; 

【10】设阶码3位,位数6位,按浮点运算方法,计算下列各式:

(2). 

【解】 Ex = 11 110,  Mx = 0.011010;   Ey = 00 011,  My = 0.111100;

Ez = Ex – Ex = 11 110 + 11 101 = 11 011 = -5;

[Mx]补 = 00.011010; [My]补 = 00.111100;  [-My]补 = 11.000100;

被除数 X   00 011010000000  → 右补6个0(被除数数值位扩展一倍长度)

+[-My]补     11 000100

余数为      11 011110000000  → q0 = 0

+[ My]补  00 0111100

余数为      11 111100000000  → q1 = 0

+[ My]补  00 00111100

余数为      00 001011000000  → q2 =

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值