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

计算机中浮点数的存储方式

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

计算机中浮点数的存储方式

引用
CSDN
1.
https://blog.csdn.net/yishaobai/article/details/145405991

计算机中的浮点数存储遵循IEEE 754标准,它定义了浮点数的二进制表示方式。本文将详细介绍浮点数的存储方式,包括符号位、指数、尾数等关键部分,并解释单精度和双精度的区别以及特殊值的表示方法。

前言

计算机中的浮点数存储遵循IEEE 754 标准,它定义了浮点数的二进制表示方式。

1. 浮点数的三部分

  • 符号位:1位,0表示正浮点数,1表示负浮点数。
  • 指数:8位(单精度)或11位(双精度),表示科学计数法中的指数部分(用偏移量表示)。
  • 尾数:23位(单精度)或52位(双精度),表示有效数字的小数部门(省略前导的1)。

可表示为公式:

V = ( − 1 ) S ∗ M ∗ 2 E V=(-1)^SM2^EV=(−1)S∗M∗2E

  • S:符号位
  • M:尾数
  • E:指数

IEEE 754标准规定E是一个无符号整数(unsigned int)。

  • 单精度浮点数E的取值范围为0~255
  • 双精度浮点数E的取值范围为0~2047
  • 但在科学计数法中,E是可能出现负数的,因此标准规定,存入内存时,E的真实值必须加上偏移量(1271023)。

2. 具体存储步骤

  • 十进制:5.5 5.55.5—> 二进制:101.1 101.1101.1。
  • 使用科学计数法为:1.011 ∗ 2 2 1.0112^21.011∗22。带入V = ( − 1 ) S ∗ M ∗ 2 E V=(-1)^SM*2^EV=(−1)S∗M∗2E公式,S = 0 S=0S=0,M = 1.011 M=1.011M=1.011,E = 2 E=2E=2。
  • 存入内存空间,E需要真实值+偏移量。

3. 单精度 vs 双精度

类型
符号位
指数位
尾数位
总位数
偏移量
单精度
1
8
23
32
127
双精度
1
11
52
64
1023

4. 特殊值

IEEE 754还定义了特殊值。

  1. :指数和尾数全为0。
  2. 无穷大:指数为全1,尾数为全0。
  3. NaN:指数为全1,尾数非0。
  4. 非规格化数:指数为全0,用于表示接近零的极小值。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号