IEEE 754规格化浮点数所能表示的最大值和最小值

简介: IEEE 754规格化浮点数所能表示的最大值和最小值

IEEE 754标准

IEEE 754标准浮点数格式:

image.png

  • 阶码用移码表示
  • 移码=阶码真值+偏置值
  • 阶码真值=移码-偏置值
  • 偏置值的公式为:

image.png

  • 移码(这里的移码看作无符号数)的表示范围为:
  • image.png
  • 尾数用原码表示
  • 隐含最高数位1
  • 阶码全1和阶码全0用作特殊用途

IEEE 754浮点数格式:

image.png

浮点数的最大值和最小值

IEEE 754规格化浮点数的最大值和最小值,可以先根据最大绝对值,改变符号位即可

浮点数的最大绝对值

浮点数规格化的阶码决定了数值的大小,因此找最大绝对值,就需要首先确认最大的阶码真值,然后再确定尾数部分最大

因此找最大绝对值需要确定最大阶码和确定最大尾数

我们拿短浮点数(单精度、float型)举例。

已经知道阶码真值=移码-偏偏置值,因此最大的阶码=最大的移码-偏置值`。

短浮点数得阶码占8位,根据移码公式可以算出:

image.png

由于全1和全0用作特殊用途,所以我们能取得最大的移码是254

根据偏置值公式可以算出:

image.png

偏置值为127

由公式阶码真值=移码-偏移量可以求出最大阶码真值能取得254-127=127。求出最大阶码,再求最大尾数部分

短浮点数的尾数部分占23位,我们把23位数值位全部取1就是最大值,再加上隐含的最高位1,得出:

image.png

组合到一块就是:

image.png

但是这么多位1存在很麻烦,我们化简一下:

image.png

最后得到:

image.png

浮点数的最小绝对值

和最大绝对值一样,只需要让阶码真值最小,尾数部分最小即可

继续拿短浮点数举例。

上面已经求出短浮点数移码的表示范围

image.png

和偏置值为127

由于移码的全1和全0用作特殊用途,所以我们能取得最小的移码是1

由公式阶码真值=移码-偏移量可以求出最大阶码真值能取得1-127=-126。求出最小阶码,再求最小尾数部分

短浮点数的尾数部分占23位,我们把23位数值位全部取0就是最小值,再加上隐含的最高位1,得出:image.png

最后得到:

image.png


浮点数的最大值

将绝对值改变符号即可

短浮点数所能表示的最大规格化正数:

image.png

短浮点数所能表示的最大规格化负数:

image.png

浮点数的最小值

将绝对值改变符号即可

短浮点数所能表示的最小规格化正数:

image.png

短浮点数所能表示的最小规格化负数:

image.png

长浮点数同理




目录
相关文章
|
30天前
输出双精度(double)数
【10月更文挑战第12天】输出双精度(double)数。
22 6
wustojc1002求2个整数最大值
wustojc1002求2个整数最大值
49 0
wustojc1003设计函数求2个整数的最大值
wustojc1003设计函数求2个整数的最大值
49 0
35.数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
51 0
35.数值的整数次方
|
前端开发 JavaScript 程序员
数值的整数次方
数值的整数次方
数值的整数次方
BigDecimal 比较大小及保留两位及取非负数
BigDecimal 比较大小及保留两位及取非负数
104 0
|
存储 Java
从0.2+0.4不等于0.6说浮点数
从0.2+0.4不等于0.6说浮点数,浮点数我一直心存疑惑。
150 0
从0.2+0.4不等于0.6说浮点数
输出最小的数位和等于x并且各个数位都不一样的值
输出最小的数位和等于x并且各个数位都不一样的值
46 0
【3.整数与浮点数二分】
1.整数二分 >### 二分本质 >- 有单调性,一定可以二分 >- 二分的题目,不一定非要有单调性 >### 思路:分俩种情况,有俩种模板
110 0
【3.整数与浮点数二分】