问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

IEEE754标准详解:单精度和双精度浮点数的表示方法

创作时间:
作者:
@小白创作中心

IEEE754标准详解:单精度和双精度浮点数的表示方法

引用
CSDN
1.
https://blog.csdn.net/dmf_fff/article/details/146572666

IEEE754标准定义了浮点数在计算机中的表示方法,包括单精度(32位)和双精度(64位)两种格式。本文将详细介绍这两种浮点数的表示方式及其计算方法。

1. 单精度浮点数

1.1 单精度浮点数的格式

单精度浮点数采用32位来表示一个浮点数,格式如下:

如上图所示,单精度浮点数由三部分组成:

  • 符号位(S):1位,0表示正数,1表示负数
  • 指数位(E):8位,取值范围为0-255
  • 尾数位(F):23位

1.2 如何理解指数位和尾数位

指数位(E)

单精度浮点数的取值范围为±1.17e-38到±3.4e+38。这个范围与指数位E有关,E表示为2^(E-127)。E共8位,取值范围为0-255,其中全0(0)和全1(255)用作特殊用途,所以E的实际取值范围为1-254。因此,指数的取值范围为2^-126到2^127,大约就是1.17e-38到3.4e+38。

  • E = 0:表示无穷小
  • E = 255:表示无穷大

尾数位(F)

尾数位F共23位,可以表示2^23个数。F的作用是提高浮点数的精度,通过将区间[2^n, 2^(n+1)]拆分为2^23份,来确定浮点数的具体值。

1.3 公式记录

通过S、E、F三个参数计算对应浮点数的公式为:
(-1)^S * (1 + F / 2^23) * 2^(E-127)

通过S、E、F三个参数计算对应整数的公式为:
F + E * 2^23

1.4 举例说明

以3.14为例:

  • 3.14为正数,所以符号位S = 0
  • 2^1 < 3.14 < 2^2,所以2^(E-127) = 2^1;E-127 = 1,所以指数位E = 128
  • (3.14 - 2^1) / (2^2 - 2^1) = 0.57;2^23 * 0.57 = 4781506.56,四舍五入后尾数位F = 4781506

因此,3.14的二进制表示为:

2. 双精度浮点数

双精度浮点数使用64位表示,格式如下:

相较于单精度浮点数,双精度浮点数的指数位扩展到11位,尾数位扩展到52位,表示范围更大,精度更高,但原理相同。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号