Skip to content

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

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

题目

某科学实验中,需要使用大量的整型参数,为了在保证表数精度的基础上提高运算速度,需要选择合理的数据表示方法。若整型参数 α 和 β 的取值范围分别为 −2²⁰~2²⁰、−2⁴⁰~2⁴⁰,则下列选项中,α 和 β 最适宜采用的数据表示方法分别是( )。

错因

A

只考虑了"装得下"——没看 β 的范围。α ∈ ±(约 ±)32 位整数(范围 ± ≈ ±)确实能装下;但 β ∈ ±(约 ±),远超 32 位整数 ± 的范围,溢出。题目除了精度还要"提高运算速度",但前提仍是"保证表数精度"——选 A 在 β 这一项上根本表不出来,先违反了精度。

B

把两个变量都套用单精度浮点。问题分两层:

  1. α 用单精度浪费速度——α 是 ± 内的整数,32 位 int 能精确表示且整数运算比浮点快
  2. β 用单精度损失精度——单精度尾数 23+1 位,只能精确表示 ± 内的整数,对 ± 范围内大于 的整数会丢精度(落到最近的可表示浮点数),不满足"保证表数精度"

D

α 用单精度(同 B 的第 ① 点)——α 用 32 位整数已足够装下且整数运算更快,单精度浮点是把简单问题复杂化。β 选双精度对了,但 α 选错。

总解析

核心约束:先看"是否能精确表示"(精度),再选"运算最快"的类型。

第一步:列出可选类型的范围与精度

类型表数范围整数精确表示范围运算速度
32 位整数(约 ±范围内全部精确最快
单精度浮点±± 内的整数精确(尾数 23+1 位)较慢
双精度浮点±± 内的整数精确(尾数 52+1 位)较慢

第二步:α ∈ ±

  • 32 位整数:装得下且精确
  • 单精度浮点:,也能精确表示,但整数运算比浮点快 → 不优
  • ⇒ α 选 32 位整数

第三步:β ∈ ±

  • 32 位整数:装不下,溢出
  • 单精度浮点: → 大于 的整数不再能精确表示,精度丢失
  • 双精度浮点:可精确表示
  • ⇒ β 选 双精度浮点

最终答案是 C(32 位整数、双精度浮点)

选择口诀

  1. 整数能装下 → 优先用整数(最快)
  2. 整数装不下 → 看单精度尾数能不能罩住(±
  3. 单精度也不够 → 上双精度(±

关键阈值速记

阈值含义
±32 位整数边界
±单精度浮点能精确表示整数的边界
±双精度浮点能精确表示整数的边界

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题