单选题
假设有浮点数x=2
-5
×0.0110011,y=2
3
×(-0.1110010),阶码用4位补码表示,尾数(含符号位)用8位补码表示,则[x x y]
浮
为( )。
【正确答案】
C
【答案解析】解析:阶码与尾数补码均使用双符号位,则有 [M
x
]
补
=00.0110011,[M
y
]
补
=11.0001110 [E
x
]
补
=110011,[E
y
]
补
=00011 所以,[x]
浮
=11011,00.0110011,[y]
浮
=00011,11.0001110。 (1)阶码求和 [E
x
]
补
+[E
y
]
补
=11011+00011=11110,可得真值为-2。 (2)尾数的Booth乘法运算过程就不列出了,可以按照原码乘法算法实现,可得结果为 [M
x
]
补
×[M
y
]
补
=[00.0110011]
补
×[11.0001110]
补
=[11.10100101001010]
补
(3)规格化处理 在讲解规格化数时,提到当使用补码表示尾数时,要使得1>|w|≥1/2,当此浮点数为正数时,和原码一样,最高位必须为1;当此浮点数为负数时,要使得1>|w|≥1/2,最高位必须为0,否则求反加1回到原码时就会造成|w|<1/2,故补码表示尾数规格化后的形式为0.1XXX…X或者1.0XXX…X。 而此时尾数为11.10100101001010,不是规格化数,所以需要左规一次,左规一次之后为11.01001010010100。此时阶码减1,变为11101,即-3。 (4)舍入处理 题干说了运算结果保留高8位(含符号位),所以保留0100101(还有1位符号位),但是最后还是要使用尾数低位字长的值处理舍入操作,尾数低位字长为0010100,最高位为0,直接舍掉。 综上分析,可得最后结果为 [xxy]
浮
=11101,11.0100101 =2
-3
×(-0.1011011)