Skip to content

2012年 408 计算机组成原理 第 14 题

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

题目

float 类型(即 IEEE754 单精度浮点数格式)能表示的最大正整数是( )。

错因

A

两处错叠加——尾数漏隐含位 1(把 误算成 阶码错算为 126(漏一位):

凡是题目里" 小一档、 也小一档"的选项,多半是规格化数计算流程里把"最大阶码"和"尾数全 1 的真值"两件事都做错了。

B

只错在漏掉隐含位 1——把尾数 (24 位 1 含隐含位)算成了 (只看显式 23 位):

IEEE 754 规格化数的尾数实际值是 (开头那个 1 是默认隐含的,不存数到机器里),不是

C

只错在阶码——把最大真值阶码算成了 126 而不是 127:

可能的诱因:

  1. 把阶码偏置当成了 128(实际是 127 = ,n=8)
  2. 误以为"最大有效阶码 E=254 减偏置 127 = 127,再减 1"——其实不需要再减 1

总解析

第一步:IEEE 754 单精度的三段结构

31S3023E8 bits220M23 bits
字段位数值的含义
S1符号位(0 = 正,1 = 负)
E8移码阶码,偏置值 = 127
M23尾数小数部分,隐含 "1." 不存

第二步:找"最大正数"的位串

要让数尽可能大:

  • (正数)
  • 最大有效阶码——E = 11111111(255)保留给 / NaN,E = 11111110 = 254 才是最大有限阶码
  • 全 1:
31S03023E8 bits11111110220M23 bits11111111111111111111111

第三步:算出真值

真值 =

  • 真值阶码:

  • 真值尾数:

    (展开:

第四步:相乘化简

最终答案是 D(

单精度三个易错点速记

易错点正确值常见错值
阶码偏置127,n=8)128
最大有效阶码E = 254 → 真值 = 127E = 255(被 ∞/NaN 占了)
尾数实际值(漏隐含 1)

关于"最大正整数":单精度规格化数尾数有 24 位精度(含隐含 1)——能精确表示的最大整数是 。但题目问"能表示"的最大正整数,不要求"逐数精确",只要这个浮点位串解释出来恰好是整数即可。

恰好是整数(因为 是整数、 也是整数),所以"最大正数"和"最大正整数"在本题里指向同一个值。

最后更新:

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

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