第二章参考答案

更新时间:2023-11-14 20:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第2章 参考答案

2写出下列十进制数的原码、反码、补码和移码表示(用8位二进制数)。如果是小数,则用定点小数表示;若为整数,则用定点整数表示。其中MSB是最高位(符号位),LSB是最低位。 (1)-1 (2) -38/64 解:

(1)-1=(-0000001)2 原码: 10000001

反码: 11111110 吧 补码: 11111111 移码: 01111111

(2)-38/64=-0.59375=(-0.1001100)2

或-38/64=-(32+4+2)*2-6=-(100110)*2-6=(-0.1001100)2 原码: 1

反码: 1

补码: 1

移码: 0

....

1001100

0110011

0110100

0110100

注:-1如果看成小数,那么只有补码和移码能表示得到,定点小数-1的补码为:1.0000000

此例类似于8位定点整数的最小值-128补码为10000000

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

解:(题目没有指定格式的情况下,用一般表示法做)

(1)最大数的二进制表示:0 11111111 11111111111111111111111 (2)最小数的二进制表示:1 11111111 00000000000000000000000

*(?1)*(1?2)(1) 2 (2) 2

(3)规格化最大正数:0 11111111 11111111111111111111111

22?172?17?232?17*(1?2?23)

规格化最小正数:0 00000000 10000000000000000000000

2?2?2?27*2?1?1

规格化最大负数:1 00000000 01111111111111111111111

7*(27?2?23)

规格化最小负数:1 11111111 00000000000000000000000

2规格化数的表示的数的范围为:

2?1*(?1)

?23[2

2?17*(?1),?2?27*(2?1?2)]?[2?27*2,2?12?1*(1?2?23)]4. 将下列十进制数表示成IEEE754标准的32位浮点规格化数。

-27/64

解:X=(-27/64)10=(-11011.×2 )2 =(-0.011011)2 =-(1.1011×2 )

S=1 E=-2+127=125=01111101 M=1011

IEEE754标准的32位浮点规格化数为:1 01111101 10110000000000000000000

5. 已知X和Y, 用变形补码计算X+Y, 同时指出运算结果是否溢出。

(1) x=11011 y=00011

解: [X]补=0011011, [Y]补=0000011 [X+Y]补=[X]补+ [Y]补 [X]补 0011011 + [Y]补 0000011 ------------------------ [X+Y]补 0011110 符号位为00,结果无溢出 X+Y=11110

_6

-2

6. 已知X和Y, 用变形补码计算X-Y, 同时指出运算结果是否溢出。

(1) x=11011 y=-11111

解:[X]补=0011011, [Y]补=1100001,[-Y]补=0011111

[X+Y]补=[X]补+ [-Y]补 [X]补 0011011 + [-Y]补 0011111 ------------------------ [X-Y]补 0111010 符号位为01,结果溢出 X-Y=11010

7. 用原码阵列乘法器计算X×Y。 (1)X=11011 Y= -11111 解:[x]补=0 11011 [y]补=100001

符号位单独运算: 0?1=1

尾数部分算前求补器输出为 |x|=11011, |y|=11111 1 1 0 1 1 ×) 1 1 1 1 1

---------------------------------- 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1

----------------------------------------- 1 1 0 1 0 0 0 1 0 1

乘积符号位1,算后求补器输出为0010111011,最后补码乘积值为:

(算后求补器输出不带符号位,详见课本36页图2.7;该图中符号位输入到算后求补器是为了作为控制信号,详见课本35页图2.6中的控制性号线E)

【x×y】补= 10010111011

8. 用原码阵列除法器计算 X÷Y。 (1)X=11000 Y= -11111

解:X和Y先都乘以一个比例因子2-101

X=0.11000 ,Y= -0.11111

[∣x∣]补=0.11000,[∣y∣]补=0.11111,[-∣y∣]补=1.00001 符号位单独运算: 0?1=1 1)余数左移的解法(恢复余数法):

被除数 X 0011000 +[-|y|]补11.00001

----------------------

余数为负 11.11001 →q0=0 余数为负,商上0 +[|y|]补 00.11111 恢复余数 ----------------------

00.11000

左移 01.10000

+[-|y|]补11.00001

----------------------

余数为正 00.10001 →q1=1 余数为正,商上1 左移 01.00010 +[-|y|]补 11.00001 ----------------------

余数为正 00.00011 →q2=1 余数为正,商上1 左移 00.00110 +[-|y|]补 11.00001 ----------------------

余数为负 11.00111 →q3=0 余数为负,商上0

+[|y|]补 00.11111 恢复余数 ----------------------

00.00110

左移 00.01100 +[-|y|]补11.00001 ----------------------

余数为负 11.01101 →q4=0 余数为负,商上0

+[|y|]补 00.11111 恢复余数 ----------------------

00.01100

左移 00.11000 +[-|y|]补11.00001 ----------------------

余数为负 11.11001 →q5=0 余数为负,商上0 +[|y|]补 00.11111 ---------------------- 余数 00.11000

故 [x÷y]原=1.11000 即 x÷y= -0.11000,余数=0.11000*2

2)余数左移的解法(加减交替法): 被除数 X 0011000 +[-|y|]补11.00001

----------------------

余数为负 11.11001 →q0=0 余数为负,商上0

左移 11.10010

+[|y|]补 00.11111

----------------------

余数为正 00.10001 →q1=1 余数为正,商上1 左移 11.00010 +[-|y|]补 11.00001 ----------------------

余数为正 00.00011 →q2=1 余数为正,商上1 左移 00.00110 +[-|y|]补 11.00001 ----------------------

余数为负 11.00111 →q3=0 余数为负,商上0

-101

.

*2 =0.11000

101

.

左移 10.01110 +[|y|]补 00.11111 ----------------------

余数为负 11.01101 →q4=0 余数为负,商上0 左移 10.11010 +[|y|]补 00.11111 ----------------------

余数为负 11.11001 →q5=0 余数为负,商上0 +[|y|]补 00.11111 ---------------------- 余数 00.11000

故 [x÷y]原=1.11000 即 x÷y= -0.11000,余数=0.11000*2-101*2101 =0.11000 3)除数右移的解法(加减交替法): 被除数 X 0.1100000000 +[-∣y∣]补 1.00001

-------------------------

余数为负 1.1100100000 →q0=0余数为负,商上0

+[|y|]补 0.011111

-------------------------

余数为正 0.0100010000 →q1=1余数为正,商上1 +[-|y|]补 1.1100001 ------------------------

余数为正 0.0000011000 →q2=1余数为正,商上1 +[-|y|]补 1.11100001 ------------------------

余数为负 1.1110011100 →q3=0 余数为负,商上0 +[|y|]补 0.000011111 ------------------------

余数为负 1.1111011010 →q4=0余数为负,商上0 +[|y|]补 0.0000011111 ------------------------

余数为负 1.1111111001 →q5=0余数为负,商上0 +[|y|]补 0.0000011111 ------------------------- 余数 0.0000011000

故 [x÷y]原=1.11000 即 x÷y= -0.11000,余数= 0.0000011*2=0.11000 9 设阶码5位(包含2位符号位), 尾数9位(包含2位符号位), 都为补码表示,采用0舍1入,计算X+Y,X-Y: X=2-101×(-0.1001011) Y=2-011×0.0101011 解:[x]浮=11011,11.0110101

[y]浮=11101,00.0101011 [-y]浮=11101,11.1010101 ① 0操作数检查 两数都非0

101

②对阶

[ΔE]补=[Ex]补+[-Ey]补=11011+00011=11110 可见ΔE=-2

将Mx右移2位,[x]浮=11101,11.11 01101(01)

③尾数相加

相加 相减

11.1101101(01) 11.1101101(01) + 00.0101011 + 11.1010101 ------------------------ ------------------------

00.0011000(01) 11.1000010(01)

④结果规格化

[x+y]浮=11101,00.0011000(01) 左规 [x+y]浮=11011,00.1100001 [x-y]浮=11101, 11.1000010(01) 左规 [x-y]浮=11100, 11.0000100(1) ⑤舍入处理 (用0舍1入)得 [x+y]浮不需舍入处理 [x-y]浮=11100, 11.0000101

⑥判溢出

X+Y和X-Y的阶符都是11,都没溢出

最终的结果为: x+y=2-101×(0.1100001) x-y=2-100×(-0.1111011)

本文来源:https://www.bwwdw.com/article/n1mv.html

Top