IEEE754 浮点数

本文介绍了IEEE754浮点数的构成,包括符号位、指数位和小数位,深入探讨了浮点数的表示方式。

1.浮点数由符号位、指数位、小数位构成

单精度浮点数
符号位长度:1
指数位长度:8
小数位长度:23
双精度浮点数
符号位长度:1
指数位长度:11
小数位长度:52


符号位:0表示正数,1表示负数

指数位:
单精度:小数点左移位数 + 127
双精度: 小数点左移位数 + 1023

小数位:小数点左移后小数点右边剩下的数(小数位的最高位始终为1,实际不做存储)

2.浮点数表示

a,小数转二进制

以3.25为例:
3对应二进制0011;
0.25对应二进制01;
3.25对应二进制0011.01;

单精度:
符号位:0
### IEEE 754 浮点数标准概述 IEEE 754 是一种广泛接受的浮点数表示法标准,旨在提供跨不同硬件平台一致性的浮点运算结果。该标准规定了单精度(`float`)、双精度(`double`)以及其他扩展类型的格式、特殊值处理方式以及算术操作行为[^1]。 #### 单精度浮点数结构 对于 `float` 类型而言,在32位二进制字符串中分为三个部分: - **符号位 (S)**:最左边一位用于标记正负号;0代表正值而1则意味着负值。 - **指数域 (E)**:接下来8位用来存储经过偏置后的实际次方数加上固定常量\(127\)形成无符号整数值范围\[1,254\]对应真实指数区间\[-126,+127\][^3]。 - **尾数/分数域 (F/Mantissa or Fractional part)**:最后剩下的23位记录有效数字的小数部分,默认情况下假定存在隐含前导'1.'使得整体长度达到24比特精度水平。 ```plaintext SEEEEEEE EFFFFFFF FFFFFFFF FFFFFFFF ``` #### 双精度浮点数结构 相比之下,`double` 使用64位来更精确地表达实数: - 符号同样占用单独的一位; - 指数扩大到11位允许更大的动态范围(-1022至+1023),此时偏移量调整为1023而非之前的127; - 尾数增长到了52位从而提高了相对误差界限内的绝对准确性。 ```plaintext SEEEEEEEE EEEEEFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF ``` #### 特殊情况说明 除了常规数值外,还定义了几种特殊情况以应对溢出或非法输入等问题: - 当所有指数位均为零且小数全为零时表示±0(取决于符号位); - 如果仅最高有效位被设置成1其余皆为空白,则认为是非正规化数(Normalized Numbers), 它们可以非常接近于机器所能识别最小非零数量级; - 所有指数位置满载即全部设为1时: - 若尾数字段清零则解释作无穷大(\(+∞/-∞\)), - 否则视为未指定形式的结果——NaN(Not a Number)[^2]。 这种设计不仅增强了程序间的兼容性而且有助于开发者更好地理解和控制可能出现的各种极端情形下的表现形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值