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

长浮点数同理




目录
相关文章
|
23天前
两个整数相加
【10月更文挑战第12天】两个整数相加
17 5
|
1月前
取一个整数a从右端开始的 4~7 位
取一个整数a从右端开始的 4~7 位。
20 7
|
6月前
63.取一个整数a从右端开始的4~7位。
63.取一个整数a从右端开始的4~7位。
34 0
|
6月前
|
人工智能
PTA-求整数的位数及各位数字之和
求整数的位数及各位数字之和
52 4
wustojc1002求2个整数最大值
wustojc1002求2个整数最大值
48 0
wustojc1003设计函数求2个整数的最大值
wustojc1003设计函数求2个整数的最大值
49 0
wustojc2003求整数均值
wustojc2003求整数均值
53 0
|
C++
C++ 输出特定位数小数
C++ 输出特定位数小数
137 0
35.数值的整数次方
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方
50 0
35.数值的整数次方
|
前端开发 JavaScript 程序员
数值的整数次方
数值的整数次方
数值的整数次方