1
0
0

【中软设】2.3 计算机组成与体系结构-浮点数表示

## 概述 浮点数的表示是软考软件设计师科目「计算机组成与体系结构」章节数的表示部分的必考考点。本节核心内容三块: 1. **浮点数的表示公式** —— 尾数、基数、阶码三要素 2. **浮点数加减运算的三步过程** —— 对阶 → 尾数计算 → 结果格式化 3. **表示范围与精度的决定因素** —— 阶码管范围、尾数管精度(选择题高频考法) --- ## 一、浮点数的表示公式 ![frame_0001: 考点总结页原始内容——浮点数表示公式、运算过程、四条特点](https://blogs.evocosmos.com/upload/blogs_20260916001-image1.jpg) 浮点数的一般表示形式: ``` N = 尾数 × 基数^指数 ``` - **尾数**:决定数的有效精度 - **基数**:在计算机中通常固定为 **2**(讲师在板书中手写标注强调) - **指数(阶码)**:决定数的表示范围 ## 二、浮点数加减运算的三步骤 运算过程:**对阶 → 尾数计算 → 结果格式化** 课件原始例式:`1.23×2² + 3.2×2⁴` ![frame_0060: 讲师批注完整版——公式各要素标注、运算三步骤编号①②③、四条特点圈画](https://blogs.evocosmos.com/upload/blogs_20260916001-image2.jpg) ### 第 1 步:对阶(小数向大数看齐) 原则:**小阶向大阶对齐**,通过**较小数的尾数右移**实现。 以 `1.23×2² + 3.2×2⁴` 为例(阶码 2 < 4,把 2 对齐到 4): ``` 1.23×2² (阶码 2 → 4,尾数右移两位) = 0.123×2³ = 0.0123×2⁴ ``` ![frame_0065: 手写对阶推导——2⇒4,1.23 变为 0.0123(尾数右移),标注"小""大"](https://blogs.evocosmos.com/upload/blogs_20260916001-image3.jpg) ### 第 2 步:尾数计算 阶码统一后,尾数直接相加。讲师用竖式演示 `3.2 + 0.0123` 逐位相加: ![frame_0077: 尾数加法竖式——3.2 与 0.0123 数位对齐相加得 3.2123](https://blogs.evocosmos.com/upload/blogs_20260916001-image4.jpg) ``` 0.0123×2⁴ + 3.2×2⁴ = (0.0123 + 3.2)×2⁴ = 3.2123×2⁴ ``` ### 第 3 步:结果格式化 把结果整理成 `尾数×2^阶码` 的标准形式,即 `3.2123×2⁴`。 ## 三、浮点数表示的四大特点(背熟,直接得分) | # | 特点 | 考点提示 | |---|------|---------| | 1 | 对阶时,**小数向大数看齐** | 判断对阶方向 | | 2 | 对阶是通过**较小数的尾数右移**实现的 | 尾数右移 = 阶码增大 | | 3 | **阶码的位数**决定数的表示**范围**,位数越多范围越大 | 范围 ↔ 阶码 | | 4 | **尾数的位数**决定数的有效**精度**,位数越多精度越高 | 精度 ↔ 尾数 | 一句话记忆:**范围看阶码,精度看尾数**。 --- ## 四、真题实战 ### 真题 1:阶码 / 尾数位数与范围 / 精度的关系 ![frame_0086: 真题 1 题目——长度相同但格式不同的两种浮点数的范围与精度比较](https://blogs.evocosmos.com/upload/blogs_20260916001-image5.jpg) **题目**:对于长度相同但格式不同的两种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定都相同,则二者可表示数值的范围和精度情况为( )。 - A、二者可表示的数的范围和精度相同 - B、前者所表示的数的范围更大且精度更高 - C、前者所表示的数的范围更大但精度更低 - D、前者所表示的数的范围更小但精度更高 **解析**(讲师手写批注推导): - 前者阶码长 → 由特点 3:**范围更大** - 前者尾数短 → 由特点 4:**精度更低** - 排除法验证:B 的"精度更高"与尾数短矛盾 ✗;D 的"范围更小"与阶码长矛盾 ✗ ![frame_0121: 真题 1 完整解析——"大√""小√"对应标注、排除 B 和 D、圈选答案 C](https://blogs.evocosmos.com/upload/blogs_20260916001-image6.jpg) **答案:C**(前者所表示的数的范围更大但精度更低) > 记忆锚点:总位数固定时,阶码和尾数**此消彼长**——范围和精度不可兼得。 ### 真题 2:由机器码求浮点数真值 ![frame_0148: 真题 2 题目——浮点数格式表格(阶符 1 位 / 阶码 4 位 / 数符 1 位 / 尾数 10 位)与四个选项](https://blogs.evocosmos.com/upload/blogs_20260916001-image7.jpg) **题目**:某种机器的浮点数表示格式如下(允许非规格化表示)。若阶码以补码表示,尾数以原码表示,则 `1 0001 0 0000000001` 表示的浮点数是( )。 格式:**1 位阶符 + 4 位阶码(补码)+ 1 位数符 + 10 位尾数(原码)** - A、2⁻¹⁶ × 2⁻¹⁰ - B、2⁻¹⁵ × 2⁻¹⁰ - C、2⁻¹⁶ ×(1-2⁻¹⁰) - D、2⁻¹⁵ ×(1-2⁻¹⁰) **解题步骤**: ![frame_0155: 读题阶段——题干关键词圈画,右下手写核心公式"尾数 × 基^阶"且基数标注为 2](https://blogs.evocosmos.com/upload/blogs_20260916001-image8.jpg) **第 1 步:拆分机器码** ``` 1 0001 0 0000000001 │ │ │ │ │ │ │ └─ 尾数(10 位,原码)= 0000000001 │ │ └─── 数符(1 位)= 0(正数) │ └──────── 阶码数值位(4 位) └────────── 阶符(1 位) 阶码整体 = 1 0001(含阶符的 5 位补码) ``` **第 2 步:求阶码真值**(补码 10001 → 真值) ![frame_0170: 阶码解题过程——补码 10001 取反加一求真值,1111 = 15,阶码 = -15](https://blogs.evocosmos.com/upload/blogs_20260916001-image9.jpg) ``` 补码 1 0001:符号位 1 → 负数 数值位 0001 → 取反 1110 → 加 1 → 1111(二进制)= 15(十进制) 所以阶码真值 = -15 ``` **第 3 步:求尾数真值**(原码 0000000001,小数点在最高位之前) ![frame_0182: 尾数推导——0.0000000001(二进制)= 2⁻¹⁰ 的小数化过程](https://blogs.evocosmos.com/upload/blogs_20260916001-image10.jpg) ``` 尾数 = 0.0000000001(二进制小数,1 在小数点后第 10 位) = 2⁻¹⁰ 数符 = 0 → 正数 ``` **第 4 步:套公式组装** ``` N = 尾数 × 基数^阶码 = 2⁻¹⁰ × 2⁻¹⁵ ``` ![frame_0196: 最终板书——完整推导"尾 × 基⁻¹⁵ = 2⁻¹⁰ × 2⁻¹⁵",选项 B 被红圈标出为正确答案](https://blogs.evocosmos.com/upload/blogs_20260916001-image11.jpg) **答案:B**(2⁻¹⁵ × 2⁻¹⁰) **干扰项辨析**: | 干扰项 | 错在哪 | |--------|--------| | A / C 的 2⁻¹⁶ | 把阶码真值误算成 -16(补码转换出错) | | C / D 的 (1-2⁻¹⁰) | 误按**规格化**尾数处理;题干明确"允许非规格化表示",尾数就是 2⁻¹⁰ 本身 | --- ## 核心要点 - 浮点数公式:**N = 尾数 × 基数^指数**,计算机中基数固定为 2 - 加减运算三步:**对阶 → 尾数计算 → 结果格式化** - 对阶规则:**小数向大数看齐**,靠**较小数尾数右移**实现 - **阶码位数 → 表示范围;尾数位数 → 有效精度**(总位数固定时二者此消彼长) - 解机器码题的套路:**拆位 → 阶码补码转真值 → 尾数原码转小数 → 套公式**;注意题干是否允许非规格化

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

评论