题目
(6分)已知X=-0.0110101×21,Y=0.1100100×2-11(此处数均为二进制)浮点数阶码用4位移码,尾数用8位补码表示(含符号位)(1)写出X,Y的浮点数表示(要求格式:数符阶码尾数(2)计算X+Y,要求给出运算过程(古入采用0舍1入法(3)如何判断浮点衤码加减运算是否溢出?并说明发生溢出时如何处理?并判断上述运算结果是否溢出
(6分)已知X=-0.0110101×21,Y=0.1100100×2-11(此处数均为二进制)
浮点数阶码用4位移码,尾数用8位补码表示(含符号位)
(1)写出X,Y的浮点数表示(要求格式:数符阶码尾数
(2)计算X+Y,要求给出运算过程(古入采用0舍1入法
(3)如何判断浮点衤码加减运算是否溢出?并说明发生溢出时如何处理?并判断上述运
算结果是否溢出
题目解答
答案

解析
考查要点:本题主要考查二进制浮点数的表示、加减运算过程及溢出判断。
解题思路:
- 浮点数表示:需将阶码转换为移码,尾数转换为补码,并注意位数要求。
- 加减运算:需对阶、尾数相加、规格化、舍入,最终组合结果。
- 溢出判断:通过阶码是否超出移码范围判断,若溢出需处理为无穷大或下溢。
关键点:
- 移码偏置值:4位移码偏置值为$2^{4-1}=8$,阶码计算为$真值+8$。
- 补码规格化:尾数符号位与数值部分需满足补码规格化形式。
- 舍入规则:采用“0舍1入法”,需判断最后丢弃位是否为1。
第(1)题:写出X、Y的浮点数表示
X的表示
- 阶码:$2^{11}$中指数为$11_{(2)}$(二进制),对应十进制$3$。
移码计算:$3 + 8 = 11_{(10)} = 1011_{(2)}$,取4位得1011。 - 尾数:$-0.0110101$,补码形式为:
原码:$1.0110101$ → 反码:$1.1001010$ → 补码:$1.1001011$(8位)。
Y的表示
- 阶码:$2^{-11}$中指数为$-11_{(2)}$(二进制),对应十进制$-3$。
移码计算:$-3 + 8 = 5_{(10)} = 0101_{(2)}$,取4位得0101。 - 尾数:$0.1100100$,补码形式为:
符号位0,数值部分补足7位得0.1100100(8位)。
第(2)题:计算X+Y
对阶
- X阶码:1011(3),Y阶码:0101(-3)。
- 选大阶码1011(3),Y需对阶:
尾数右移2位:$0.1100100 \rightarrow 0.0011001$(舍入后为$0.0011010$)。
尾数相加
$\begin{align*} X尾数:&1.1001011 \\ Y尾数:&0.0011010 \\ \hline 和:&1.1100101 \end{align*}$
规格化
和为$1.1100101$,需左移1位得$11.1001010$,阶码减1(变为1010)。
舍入
保留8位尾数:$1.1001010$,最终结果为:
- 数符:1,阶码:1010,尾数:1.1001010。
第(3)题:溢出判断与处理
判断方法:
- 上溢:阶码为全1(1111),结果为无穷大。
- 下溢:阶码为全0(0000),结果置0。
本题结果:
阶码为1010(2),未超出移码范围,无溢出。