题目
今有以下两浮点数(阶码和尾数均用补码表示): X:阶码0000 尾数0.10000111 Y:阶码1111 尾数0.11100100 求:X-Y
今有以下两浮点数(阶码和尾数均用补码表示): X:阶码0000 尾数0.10000111 Y:阶码1111 尾数0.11100100 求:X-Y
题目解答
答案
结果:阶码:1101, 尾数0.10101000,均为补码
解析
考查要点:本题主要考查浮点数的补码表示及运算,包括阶码对齐、尾数运算、结果规格化等步骤。
解题核心思路:
- 阶码对齐:将两数的阶码调整为相同,通过移动尾数实现,需注意尾数移动后的舍入处理。
- 尾数运算:对齐后直接进行尾数的减法运算,注意符号位的处理。
- 结果规格化:将运算结果的尾数调整为符合规格化形式(最高有效位为1),并相应调整阶码。
- 补码转换:最终结果的阶码和尾数需用补码表示。
破题关键点:
- 阶码对齐方向:阶码大的数调整到阶码小的数,避免精度损失。
- 尾数移动方向:阶码增大时,尾数右移;阶码减小时,尾数左移。
- 规格化处理:确保尾数最高有效位为1,通过左移或右移调整,并同步更新阶码。
阶码对齐
- 确定阶码值:
- X阶码:
0000(补码)对应十进制0 - Y阶码:
1111(补码)对应十进制-1(假设4位补码)
- X阶码:
- 对齐方向:X阶码更大(
0 > -1),需将Y的阶码调整到0。 - 调整Y的尾数:Y阶码增加
1(从-1到0),尾数右移1位:- 原尾数:
0.11100100 - 右移后:
0.01110010(舍去末位0,无需进位)
- 原尾数:
尾数相减
- 对齐后尾数:
- X尾数:
0.10000111 - Y调整后尾数:
0.01110010
- X尾数:
- 直接相减:
0.10000111 - 0.01110010 = 0.00010101
规格化处理
- 检查最高有效位:结果
0.00010101最高有效位为第4位,需左移3位:0.00010101 → 0.10101000(左移3位) - 调整阶码:左移3位相当于阶码减少
3,原阶码0变为-3。 - 阶码补码转换:
-3的4位补码为1101。
符号位处理
- 尾数结果为正(符号位
0),无需改变符号。