单选题 假设有浮点数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)