Skip to content

2009年 408 计算机组成原理 第 13 题

计算机组成原理2009年选择题2分

题目

浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为 5 位和 7 位(均含 2 位符号位)。若有两个数 X=,Y=,则用浮点加法计算 X+Y 的最终结果是( )。

错因

A

在尾数加法或对阶环节算崩了,得到了一个**尾数双符号位为 11(负数)**的伪结果——X、Y 都是正数,X+Y 不可能是负数,所以这个结果从直觉上就该警觉。常见诱因是把 X+Y 误算成 X−Y、或对阶时尾数移位的方向 / 步数错位,再叠加一次符号位丢失。这种"完全不像中间结果也不像终值"的选项是干扰项,凡是凑到这种值都该回头查每一步的双符号位。

B

尾数加法的中间结果当成了最终答案。尾数 双符号位 01 表示尾数发生上溢,必须做"右规"——右移 1 位、阶码 +1。选 B 的考生在加完尾数那一步就停手了,跳过了规格化步骤;以为"双符号位 01 也是合法表示",但 IEEE 风格的规格化要求尾数双符号位必须相同(00 或 11)。

C

做完了对阶 → 加 → 右规,得到 01000 0010001,最后漏了"判溢出"那一步。问题在阶码:右规之后阶码从 (=7)+1 变成 (双符号位 01),这意味着阶码上溢——它已经超出本题阶码 5 位补码(含 2 符号位、3 位数值)的最大表示范围 7。选 C 的人是"流程跑通了但忘了核最后一关",这正是这道题的核心陷阱:题面专门提到"判溢出"步骤,就是要逼你做完不要急着提交。

总解析

第一步:编码 X 和 Y

把真值转成本题约定的补码(阶 5 位 / 尾 7 位,均含 2 位符号位):

阶码真值尾数真值阶码补码尾数补码
X7
Y5

第二步:对阶(小阶向大阶看齐)

阶差 。让 Y 的阶码 +2,尾数对应右移 2 位(双符号位保持、正数高位补 0):

阶码尾数
Y 原始
Y 对齐后
X

第三步:尾数相加

得到尾数 双符号位 01(不同)→ 尾数上溢,必须右规

第四步:右规(尾数右移 1 位 + 阶码 +1)

右规前右规后
尾数
阶码(=+7)

第五步:判溢出(关键步骤)

右规后阶码变成 双符号位 01(不同)→ 阶码上溢

阶码 5 位补码(含 2 符号位、3 位数值)的合法表示范围是 。右规要求 ,已经超出最大表示范围 7。

阶码溢出 ⇒ 整体结果溢出,浮点加法无法给出正确表示

最终答案是 D(发生溢出)

这道题的硬核陷阱在最后一步:从"对阶 → 加 → 右规"流程上看,C 选项 01000 0010001 是一个"看起来已经完成了的"结果——题面专门提到"判溢出"就是为了考查你做完流程后还要不要再核一遍阶码。判断溢出的标准是看阶码的双符号位是否相同(00 或 11 → 合法;01 → 上溢;10 → 下溢)。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数