第 43 题
(11 分)已知两个实数 , ,它们在 C 语言中定义为 float 型变量,分别存放在寄存器 A 和 B 中。另外,还有两个寄存器 C 和 D。A、B、C、D 都是 32 位的寄存器。请问下列问题(要求用十六进制表示二进制序列): (1)寄存器 A 和 B 中的内容分别是什么? (2) 与 相加后的结果存放在 C 寄存器中,寄存器 C 中的内容是什么? (3) 与 相减后的结果存放在 D 寄存器中,寄存器 D 中的内容是什么?
[tag_link]
**【答案】** (1)寄存器 A 中的内容为 0xC2880000,寄存器 B 中的内容为 0xC1040000。 (2)寄存器 C 中的内容为 0xC2988000。 (3)寄存器 D 中的内容为 0xC26F0000。
**【解析】** 对于浮点数采用 IEEE 754 单精度格式(32 位),其中包含 1 位符号位、8 位指数位(偏移量 127)和 23 位尾数位。
**(1)对于 :**
- 符号位 (负数)。
- 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为 。
- 尾数 为隐藏最高位 1 后的小数部分 ,扩展至 23 位得到 。
- 组合得到二进制 ,十六进制为 。
**对于 :**
- 符号位 (负数)。
- 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为 。
- 尾数 为 ,扩展至 23 位得到 。
- 组合得到二进制 ,十六进制为 。
**(2) :**
- 符号位 (负数)。
- 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为 。
- 尾数 为 ,扩展至 23 位得到 。
- 组合得到二进制 ,十六进制为 。
**(3) :**
- 符号位 (负数)。
- 绝对值 的二进制为 ,科学计数法表示为 ,指数 ,二进制为 。
- 尾数 为 ,扩展至 23 位得到 。
- 组合得到二进制 ,十六进制为 。