实数的二进制表示
CIE A-Level 计算机科学· 第一单元:信息表示· 45 分钟阅读
1. 定点二进制表示★★☆☆☆⏱ 10 min
定点二进制为实数的整数部分和小数部分分别分配固定位数。二进制小数点分隔两部分,就像十进制中的小数点一样,小数点右侧每一位的权重是2的负次幂。
二进制小数点
分隔二进制实数整数部分(左侧)和小数部分(右侧)的分隔符。小数点右侧各位的权重为
例:
对于0.101,其值为
将十进制数6.625转换为8位定点二进制数,其中整数部分占5位,小数部分占3位
- 1
将数字拆分为整数部分(6)和小数部分(0.625),分别转换
- 2
将整数6转换为5位二进制:
- 3
- 4
对0.625使用乘2取整法,依次取出每次结果的整数部分:
- 5
- 6
合并两部分,二进制小数点在第5位之后:
- 7
最终的8位表示(存储时去掉小数点):00110101
Exam tip:
务必确认题目中各部分分配的位数,不要混淆整数部分和小数部分的位数。
2. 浮点二进制与规格化★★★☆☆⏱ 15 min
浮点二进制类似于十进制的科学计数法,它将实数拆分为两部分:尾数(存储有效数字)和指数(存储二进制小数点的位置)。对于相同的总位数,浮点二进制可比定点表示支持大得多的数值范围。
规格化浮点数
浮点二进制的标准化格式,通过移除冗余的前导位最大化精度,并确保每个值只有唯一表示。对于补码表示的尾数,前两位必须不同。
对001010 101进行规格化(尾数6位,指数3位,均为二进制补码表示)
- 1
原始尾数:001010,前两位均为0,因此未规格化。
- 2
将尾数左移1位,二进制小数点随之右移1位,因此我们需要将指数减1以补偿该变化。
- 3
移位后的尾数:010100。原始指数101在3位补码中等于-1。
- 4
新指数:-1 - 1 = -2,用3位补码表示为110。
- 5
检查:尾数前两位为01,二者不同,因此规格化正确。
- 6
最终规格化结果:尾数010100,指数110
3. 十进制与规格化浮点数的相互转换★★★★☆⏱ 20 min
将十进制实数转换为规格化浮点数时,先将其转换为普通二进制,调整为规格化形式,再拆分为符合要求位长的尾数和指数。反向转换则按相反步骤进行。
将10.25转换为规格化浮点数,尾数8位,指数4位,均为二进制补码表示
- 1
将10.25转换为普通二进制:
- 2
改写为规格化形式:将二进制小数点移到第一位之后:
- 3
用有效位填充8位补码尾数:0 1 0 1 0 0 1 0 → 01010010
- 4
指数3用4位补码表示为:0011
- 5
检查规格化:前两位0和1不同,符合要求。最终结果:01010010 0011
测试你对转换的理解:
规格化数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
范围由指数长度决定。系统A的指数更长,因此可存储更大范围的值。
- 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的核心基础考点,考试中经常出现转换题和范围精度权衡的简答题。掌握规格化和转换规则是在这些高频题中拿到满分的关键。本主题也是进一步学习计算机算术、数据存储和数字媒体表示的基础,这些领域中实数通常以浮点格式处理和存储。接下来,你可以拓展信息表示的知识,学习计算机系统中其他常见数据类型。
