带符号浮点数


我们日常生活中存在的实数,对于表示非常小的数字(例如 +0.00000012347650)并不方便。同样的数字可以用科学记数法更方便地表示为 +1.23476× 10−07。但这实际上代表 +0.000000123476。所以存在 0.00000000000005 的误差,这形成了一个非常小的百分比误差。

浮点表示在概念上类似于科学记数法。逻辑上,浮点数由以下部分组成:

  • 给定长度的给定基数(或基数)中带符号的(表示正数或负数)数字字符串。此数字字符串称为尾数、尾数或系数。

  • 修改数字大小的带符号整数指数

需要注意的是,当用固定数量的位(例如,32 位或 64 位)表示时,浮点数会遭受精度损失。这是因为存在无限数量的实数(即使在 0.0 到 0.1 的小范围内)。另一方面,一个 n 位二进制模式可以表示有限的 2n 个不同的数字。因此,并非所有实数都可以表示。浮点数运算效率远低于整数运算。因此,如果应用程序不需要浮点数,最好使用整数。将使用最接近的近似值,从而导致精度损失。现代计算机采用 IEEE 754 标准来表示浮点数。有两种表示方案:32 位单精度和 64 位双精度。

IEEE 浮点数具有三个基本组成部分:符号、指数和尾数。尾数由分数和隐式前导数字(如下所述)组成。指数基数(2)是隐式的,不需要存储。

下表显示了单精度(32 位)和双精度(64 位)浮点值的布局。每个字段的位数显示在后面,后面跟着方括号中的位范围。00 = 最低有效位。


符号
指数
分数
单精度
1 [31]
8 [30–23]
23 [22–00]
双精度
1 [63]
11 [62–52]
52 [51–00]

以位表示,浮点数如下所示:

单精度 - SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF

双精度 - SEEEEEEE EEEEFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFFFFFFFFFF


更新于: 2020 年 6 月 27 日

2K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告