IEEE 754浮点数表示
浮点数组成
以单精度 浮点数(32位)为例说明:
十进制浮点数组成:
十进制基数(base)为10

二进制浮点数组成:
二进制基数(base)为2
以IEEE 754标准表示十进制数:(7.625)_{10},先将其转成二进制表示:(111.101)_{2}=1.11101*2^{2}=2^{2}*(1+0.11101)
将以上二进制以IEEE 754标准存入内存中如下:

浮点数值转换为十进制表示时遵循以下公式:sign \times 2^{E} \times (1 + mantissa)其中的变量E代表实际计算中的指数值(在后续内容中将详细阐述这一参数)。需要注意的是,在上述公式中使用的指数值并非计算机内部存储时所采用的那个值
IEEE 754 浮点数概述

IEEE 754 规范化浮点数
sign规定
0为正
1为负
exponent规定
IEEE 754标准中基于有偏指数(The Biased exponent)来表示指数部分
这表明在内存中存储的指数值并不直接反映真实的数值大小
其真实指数组合等于内存指数组合减去一个固定偏差值
真实指数组合等于内存指数组合减去一个固定偏差值
该偏差值被称为偏移常数(Bias)
其计算公式为:2^(n-1)-1
其中n代表存储指数所占位的数量
对于单精度浮点数来说
该位数量等于8位
因此计算出的结果就是127
mantissa规定
通过移位操作将小数点前的值固定为1。
significand由23个bit组成;然而,在小数点前固定有一位数字为1;从而导致尾部存储了额外的一位数值;其总长度共计24 digits(significand)。
IEEE 754 非规范化浮点数
非规范化浮点数表示0和接近0的值
exponent规定
exponent部分全为0。
相比规范化的偏移量而言,这里的偏移量低了1个单位。具体来说,在单精度浮点数中,则计算公式为 2^{n-1}-\text{offset}(其中 offset 代表规范化后的偏移量)。举个例子,在单精度浮点数中(比如 n=8 时),计算结果为 2^{8-1}-\text{offset}= 54 - \text{offset} 对应的是数值 37.5;而当指数位全部为零时,则表示数值 -37.5 + offset
mantissa规定
规范化浮点数表示,mantissa部分有一个省略的前导1
非规范化浮点数表示,当指数位全为0时,mantissa部分没有被省略的前导1
特殊值
Infinity值


NaN(Not a Number)值


好用的几个工具
该网站提供基于转换功能的在线工具
2.
Evan W.\ 的个人GitHub项目页面提供了名为《浮点运算小工具》的资源
