Skip to content

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

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

题目

已知带符号整数用补码表示,float 型数据用 IEEE 754 标准表示,假定变量 x 的类型只能是 int 或 float。当 x 的机器数为 C800 0000H 时,x 的值可能是( )。

错因

B

按 float 解读但偏移量算成 128。0xC8000000 → S=1, E=10010000=144, M=0;正确真值阶码 = 144-127 = 17,值 = -2¹⁷。如果把偏移当 128,得 144-128 = 16,值 = -2¹⁶。这是 IEEE 754 题最常见的偏移量错误。

C

按 float 解读但漏掉符号位。S=1 是负数,但选 C 写成正的 2¹⁷——可能没注意 0xC 的二进制最高位是 1。把符号位 S 当成阶码的一部分也是这个错的常见来源。

D

按 int 补码解读但取反加 1 算错。0xC8000000 取反 = 0x37FFFFFF,再 +1 = 0x38000000 = 0011_1000_0...0;正确算法是 0x38 = 56 = 7×8 = 7 × 2³,再 × 2²⁴(因为后面 24 个 0)= 7 × 2²⁷。如果把 0x38 错算成 25 × ...(凭空多出 25),结果就掉 D。

总解析

关键:x 的真值取决于解读方式——题给的是机器数(位串),同一位串按 int 补码 vs 按 float 解读会得到完全不同的真值。两种都要算,看哪个出现在选项里。

机器数 0xC800_0000,二进制 = 1100 1000 0000 0000 0000 0000 0000 0000

第一种解读:按 int 补码

最高位 1 → 负数。求 |x|:

步骤二进制十六进制
1100 1000 0...0C8000000
取反0011 0111 1...137FFFFFF
+10011 1000 0...038000000

把 0x38000000 拆分:

所以按 int 解读:

对照选项 A —— 命中。

第二种解读:按 IEEE 754 单精度 float

31S13023E8 bits10010000220M23 bits00000000000000000000000
字段含义
S1负数
E10010000₂ = 144阶码字段
M0...0尾数全 0

真值阶码 = 144 - 127 = 17;尾数 = 1.0(隐含的 1 + 全 0 小数)。

按 float 解读:

两种解读结果

解读方式x 真值
按 int 补码−7 × 2²⁷
按 IEEE 754 float−2¹⁷

对照选项:

选项来源
A−7 × 2²⁷int 补码 ✓
B−2¹⁶(float 偏移算错为 128)
C2¹⁷(float 漏符号)
D25 × 2²⁷(int 取反加 1 算错)

只有 A 出现在合法解读结果里。

最终答案是 A(−7 × 2²⁷)

两种解读对照表

0xC8000000 解读int 补码IEEE 754 float
真值−7 × 2²⁷−2¹⁷
数量级

易错点速查

  1. 题干"x 类型只能是 int 或 float"提示要算两种解读
  2. IEEE 754 单精度偏移量 = 127(不是 128)
  3. 整数转十六进制时:38 = ,要会拆"含因子 2 的次幂"
  4. 解读为 int 时,全 24 位末尾是 0 提示真值是某个 的整数倍

最后更新:

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

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