学习指南

实数的二进制表示

CIE A-Level 计算机科学· 第一单元:信息表示· 45 分钟阅读

1. 定点二进制表示★★☆☆☆⏱ 10 min

定点二进制为实数的整数部分和小数部分分别分配固定位数。二进制小数点分隔两部分,就像十进制中的小数点一样,小数点右侧每一位的权重是2的负次幂。

📘 定义

二进制小数点

分隔二进制实数整数部分(左侧)和小数部分(右侧)的分隔符。小数点右侧各位的权重为

例:

对于0.101,其值为

📐 例题

将十进制数6.625转换为8位定点二进制数,其中整数部分占5位,小数部分占3位

  1. 1

    将数字拆分为整数部分(6)和小数部分(0.625),分别转换

  2. 2

    将整数6转换为5位二进制:

  3. 3
    6=110=001106 = 110 = 00110
  4. 4

    对0.625使用乘2取整法,依次取出每次结果的整数部分:

  5. 5
    0.625×2=1.2510.25×2=0.500.5×2=1.010.625 \times 2 = 1.25 \rightarrow 1 \\ 0.25 \times 2 = 0.5 \rightarrow 0 \\ 0.5 \times 2 = 1.0 \rightarrow 1
  6. 6

    合并两部分,二进制小数点在第5位之后:

  7. 7

    最终的8位表示(存储时去掉小数点):00110101

Exam tip:

务必确认题目中各部分分配的位数,不要混淆整数部分和小数部分的位数。

2. 浮点二进制与规格化★★★☆☆⏱ 15 min

浮点二进制类似于十进制的科学计数法,它将实数拆分为两部分:尾数(存储有效数字)和指数(存储二进制小数点的位置)。对于相同的总位数,浮点二进制可比定点表示支持大得多的数值范围。

📘 定义

规格化浮点数

浮点二进制的标准化格式,通过移除冗余的前导位最大化精度,并确保每个值只有唯一表示。对于补码表示的尾数,前两位必须不同。

📐 例题

对001010 101进行规格化(尾数6位,指数3位,均为二进制补码表示)

  1. 1

    原始尾数:001010,前两位均为0,因此未规格化。

  2. 2

    将尾数左移1位,二进制小数点随之右移1位,因此我们需要将指数减1以补偿该变化。

  3. 3

    移位后的尾数:010100。原始指数101在3位补码中等于-1。

  4. 4

    新指数:-1 - 1 = -2,用3位补码表示为110。

  5. 5

    检查:尾数前两位为01,二者不同,因此规格化正确。

  6. 6

    最终规格化结果:尾数010100,指数110

3. 十进制与规格化浮点数的相互转换★★★★☆⏱ 20 min

将十进制实数转换为规格化浮点数时,先将其转换为普通二进制,调整为规格化形式,再拆分为符合要求位长的尾数和指数。反向转换则按相反步骤进行。

📐 例题

将10.25转换为规格化浮点数,尾数8位,指数4位,均为二进制补码表示

  1. 1

    将10.25转换为普通二进制:

  2. 2

    改写为规格化形式:将二进制小数点移到第一位之后:

  3. 3

    用有效位填充8位补码尾数:0 1 0 1 0 0 1 0 → 01010010

  4. 4

    指数3用4位补码表示为:0011

  5. 5

    检查规格化:前两位0和1不同,符合要求。最终结果:01010010 0011

✓ 快速检测

测试你对转换的理解:

  1. 规格化数100100 010(尾数6位,指数3位,均为补码表示)对应的十进制值是多少?

    • -1.75

    • -2.25

    • 3.5

    • -0.75

    显示答案
    -1.75

    正确:尾数100100 = -0.875,指数010 = 2,因此

4. 范围与精度的权衡★★★☆☆⏱ 10 min

分配给尾数和指数的位数直接影响浮点系统的两个核心属性:可存储值的范围,以及存储值的精度。

📘 定义

范围与精度

范围是可存储的最小值(最负)到最大值(最正)的跨度。精度是存储的二进制值与原始真实值的接近程度,由可用的有效位数决定。

📐 例题

比较两个16位浮点系统:系统A(尾数10位,指数6位)和系统B(尾数12位,指数4位)。哪个系统的范围更大?哪个精度更高?

  1. 1

    范围由指数长度决定。系统A的指数更长,因此可存储更大范围的值。

  2. 2

    精度由尾数长度决定。系统B的尾数更长,因此可存储精度更高、舍入误差更小的值。

5. 常见陷阱

错误做法:

将补码存储的指数当作无符号值处理

原因:

CIE的大多数题目中,尾数和指数都使用补码,将指数当作无符号处理会得到错误的最终结果

正确做法:

始终确认指数是有符号还是无符号,计算最终值前先将其转换为正确的有符号十进制

错误做法:

规格化时指数调整方向错误

原因:

尾数左移1位会使二进制小数点右移1位,因此指数必须减1,而非加1

正确做法:

规格化完成后,将最终结果转换回十进制,确认其与原始值一致

错误做法:

负补码尾数规格化错误,将前导11当作有效形式

原因:

学生知道负数以1开头,但规格化要求前两位必须不同

正确做法:

遵循记忆口诀:正数01开头,负数10开头,其他任何开头组合都属于未规格化

错误做法:

描述位分配变化的影响时,混淆范围和精度

原因:

学生经常混淆哪部分的位数影响哪个属性

正确做法:

使用记忆挂钩:指数对应范围(英文Exponent和Extent首字母相同),尾数对应精度(Mantissa和Measurement首字母相同)

错误做法:

转换回十进制时,忘记应用尾数的负号

原因:

学生经常只转换尾数的大小,对负值省略符号

正确做法:

始终先检查尾数的最高位,给最终结果加上正确的符号

6. 速查表

概念

核心规则

定点表示

整数/小数部分分配固定位数,范围固定且有限

浮点表示

拆分为尾数(有效数字)和指数两部分

规格化(补码)

正数=01...,负数=10...,最大化精度

指数位数增加

可存储值的范围增大

尾数位数增加

存储值的精度提高

十进制 → 浮点数步骤

转换为二进制,规格化,拆分为尾数+指数

7. 常见问题

范围和精度的区别是什么?

范围描述给定格式可存储的最小和最大数值,精度描述存储的二进制值与原始十进制真实值的接近程度。指数越长,可存储范围越大;尾数越长,精度越高。

真题中的出现

AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。

  • 2022 · 11

    十进制到浮点二进制转换

  • 2023 · 12

    解释范围与精度的权衡

  • 2024 · 13

    对给定浮点值进行规格化

深入阅读

下一步

实数的二进制表示是CIE 9618试卷1的核心基础考点,考试中经常出现转换题和范围精度权衡的简答题。掌握规格化和转换规则是在这些高频题中拿到满分的关键。本主题也是进一步学习计算机算术、数据存储和数字媒体表示的基础,这些领域中实数通常以浮点格式处理和存储。接下来,你可以拓展信息表示的知识,学习计算机系统中其他常见数据类型。