Advertisement

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项目页面提供了名为《浮点运算小工具》的资源

全部评论 (0)

还没有任何评论哟~