题目
两浮点数x=0.1101times2^10y=0.1011times2^01,求x+y的结果的4位尾数(不带符号[1]位)为[填空1],2位阶码(不带符号位)为[填空2]
两浮点数$x=0.1101\times2^{10}$
$y=0.1011\times2^{01}$,
求x+y的结果的4位尾数(不
带符号[1]位)为[填空1],2位
阶码(不带符号位)为[填空2]
题目解答
答案
1. 初始阶码:$ x = 0.1101 \times 2^{10} $,$ y = 0.1011 \times 2^{01} $。
2. 对阶后:$ y = 0.0101 \times 2^{10} $。
3. 尾数相加:$ 0.1101 + 0.0101 = 1.0010 $。
4. 规格化[2]:$ 1.0010 \times 2^{10} = 0.1001 \times 2^{11} $。
5. 尾数为 $ 1001 $,阶码为 $ 11 $。
答案:
4位尾数:1001。
2位阶码:11。
解析
本题考查浮点数的加法运算,解题思路是按照浮点数加法的标准步骤,先对阶,再进行尾数相加,最后对结果进行规格化处理,从而得到最终的尾数和阶码。
- 对阶:
- 浮点数的表示形式为 $N = M\times r^E$,其中 $M$ 是尾数,$r$ 是基数,$E$ 是阶码。
- 对于给定的两个浮点数 $x = 0.1101\times2^{10}$ 和 $y = 0.1011\times2^{01}$,要进行加法运算,需要先使它们的阶码相同。
- 比较两个阶码,$x$ 的阶码 $E_x = 10$,$y$ 的阶码 $E_y = 01$,$E_x>E_y$。
- 为了使阶码相等,需要将阶码小的数 $y$ 的尾数右移,同时阶码增加。右移一位,尾数变为 $0.0101$,阶码变为 $01 + 1 = 10$,此时 $y = 0.0101\times2^{10}$。
- 尾数相加:
- 对阶完成后,将两个数的尾数相加,即 $0.1101 + 0.0101$。
- 按照二进制加法规则:
- 从右往左逐位相加,$1 + 1 = 10$,向前进一位,本位为 $0$;
- 下一位 $0 + 1 + 1$(进位)$ = 10$,向前进一位,本位为 $0$;
- 再下一位 $1 + 0 + 1$(进位)$ = 10$,向前进一位,本位为 $0$;
- 最左边一位 $0 + 0 + 1$(进位)$ = 1$。
- 所以 $0.1101 + 0.0101 = 1.0010$。
- 规格化:
- 得到的结果 $1.0010\times2^{10}$ 不是规格化的浮点数(规格化要求尾数的最高位为 $1$,且小数点后第一位不为 $0$)。
- 为了将其规格化,需要将尾数左移一位,同时阶码减 $1$。
- 尾数左移一位变为 $0.1001$,阶码 $10 - 1 = 11$,此时结果为 $0.1001\times2^{11}$。
- 确定尾数和阶码:
- 经过规格化处理后,得到的尾数为 $0.1001$,题目要求 4 位尾数(不带符号位),所以尾数为 $1001$。
- 阶码为 $11$,题目要求 2 位阶码(不带符号位),所以阶码为 $11$。