408真题解析-2009-13-计组-浮点数加减运算

一 真题2009-13

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

A. 00111 1100010

B. 00111 0100010

C. 01000 0010001

D. 发生溢出

二 读题

本题的解题思路题目中已给,即先用浮点数表示X和Y,然后对阶、尾数运算、规格化、舍入和判断溢出

三 哔哔详解

3.1 将X 和Y 表示为题目规定的浮点数格式

3.1.1 X的浮点数

29 的二进制 11101,则29/32 等0.11101,又因为7的二进制111

故X的浮点数00,111;00,11101 其中阶码是7

3.1.2 Y 的浮点数

5的二进制101,则5/8 等于0.101,故Y 的浮点数00,101;00,10100 其中阶码是5

3.2 对阶(阶码相同)

  • 阶码 X = 7,阶码 Y = 5
  • 阶差 = 7 - 5 = 2
  • 将 Y 的尾数右移 2 位(小阶向大阶看齐)

Y 原尾数:00 10100(= 0.10100)

右移 2 位(算术右移,符号位扩展):

  • 移位后:00 00101(低位 00 被移出,可能需要舍入,但先保留)

    因此Y的机器数变为00,111;00,00101

3.3 尾数相加

复制代码
  X_mant = 00 11101
+ Y_mant = 00 00101
-------------------
  Sum    = 01 00010

结果符号位01 ,所以需要右规

3.4 规格化(右规)

因为尾数 ≥ 1(01.xxxxx),需右移 1 位 ,同时阶码 +1

  • 尾数右移 1 位(算术右移):
    • 01 0001000 10001(高位补 0,因为是正数)
  • 阶码原为 7 → 7 + 1 = 8

3.5 溢出检测

阶码格式:5 位,含 2 位符号位 ,3位数字位→ 即阶码也是补码,格式为 SS xxx

3位数字位 的补码表示范围是-8到7,现在阶码是8 大于7 ,故阶码溢出。

综上本题选D

四 参考答案

参考答案 D

五 考点精析

5.1 浮点数的加减运算

假设有两个浮点数A和B进行相加或相减,运算过程如下:

第一步: 解析浮点数

读取两个浮点数的符号位、阶码和尾数。

第二步:对阶

如果两个数的阶码不同,需要将较小的阶码的数向右移动尾数,使其阶码与较大的对齐。右移时,最高位补0(正数)或1(负数,补码表示)。

对阶的目的是让两个数的二进制小数点对齐,以便进行加减运算。

第三步:尾数加减

如果符号相同,直接尾数相加;如果符号不同,用绝对值较大的尾数减去较小的尾数,结果的符号由绝对值较大的数决定。

第四步:规格化

  • 如果尾数发生进位(超出1.xxxxxx形式):右移1位,同时阶码加1(可能导致阶码上溢)。
  • 如果尾数发生左移(小于1.xxxxx):左移直到最高位为1,同时阶码减1(可能导致阶码下溢)。

第五步:舍入

IEEE 754 采用就近舍入,即

  • 若尾数超出精度范围,可能需要向最接近的值舍入。
  • 若进位影响阶码,则可能导致阶码溢出。

第六步:溢出检测

  • 阶码上溢:若计算后阶码超出最大可表示值,则返回无穷大
  • 阶码下溢:若计算后阶码低于最小可表示值,则返回0。

5.2 补码表示范围

对于 n 位二进制补码(含 1 位符号位):

范围=[−2n−1−2^{n−1}−2n−1, 2n−12^{n−1}2n−1−1]

位数 n 最小值(十进制) 最大值(十进制) 说明
8 -2\^7 = -128 2\^7 - 1 = 127 char
16 -32768 32767 short
32 -2\^{31} 2\^{31} - 1 int
64 -2\^{63} 2\^{63} - 1 long

特点

  • 负数比正数多一个(因为 0 占用了一个正数编码)
  • 最高位为符号位:0 表示非负,1 表示负

六 考点跟踪

暂无

说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。

相关推荐
菜鸟233号21 小时前
力扣96 不同的二叉搜索树 java实现
java·数据结构·算法·leetcode
Coovally AI模型快速验证1 天前
超越Sora的开源思路:如何用预训练组件高效训练你的视频扩散模型?(附训练代码)
人工智能·算法·yolo·计算机视觉·音视频·无人机
千金裘换酒1 天前
Leetcode 有效括号 栈
算法·leetcode·职场和发展
空空潍1 天前
hot100-最小覆盖字串(day12)
数据结构·算法·leetcode
Rui_Freely1 天前
Vins-Fusion之 相机—IMU在线标定(十一)
人工智能·算法·计算机视觉
yyy(十一月限定版)1 天前
算法——二分
数据结构·算法
七点半7701 天前
c++基本内容
开发语言·c++·算法
嵌入式进阶行者1 天前
【算法】基于滑动窗口的区间问题求解算法与实例:华为OD机考双机位A卷 - 最长的顺子
开发语言·c++·算法
嵌入式进阶行者1 天前
【算法】用三种解法解决字符串替换问题的实例:华为OD机考双机位A卷 - 密码解密
c++·算法·华为od