IEEE浮点数表示

作者: Leon_Geo | 来源:发表于2020-03-12 15:55 被阅读0次

IEEE标准中浮点数用形如V=(-1)^s x M x 2^E的格式表示一个小数:
s☞符号位,s=1代表负数,s=0代表正数。
M☞尾数,代表小数点之后的数。
E☞阶数,对刚才的小数进行加权,权重是2的E次幂。

位表示

所以整个浮点数的二进制表示形式由3个部分组成:1位的符号段(s)+ k位的阶码段 + n位的小数字段。
说明:在32位单精度表示中,k=8, n=23;在64位双精度表示中,k=11, n=52;


类别

根据阶码段的值,浮点数可以分为3种不同的情况:

1.规格化的值

1.1阶码E

这是最普遍的,就是阶码段即非全0,也非全1。此时阶码字段被解读为以偏置(biased)形式表示的有符号整数,即E = e - Bias。此处的e代表阶码段的无符号二进制数,而Bias = 2^(k-1) -1,(单精度是127,双精度是1023)。

1.2尾数M

此处尾数定义为M = 1 + f,f表示小数字段。此处隐含以1开头的尾数表示,因此我们可以把M看成一个二进制表达式为1.******的数字。

2.非规格化的值

2.1阶码E

当阶码段全为0时,所表示的就是非规格化的数字。此时,不同于规格化形式,阶码值E = 1 - Bias,而Bias仍然为 2^(k-1) -1。

2.2尾数M

不同于规格化形式,尾数M = f,这就是小数字段不包含隐含的1了。
非规格化的数一般用来表示那些非常接近于0的小数。而且也可以用来表示0,即阶码段和小数段全为0。

3.特殊的值

3.1无穷大的值

当阶码段全为1,且小数段全为0时,得到的值表示无穷大,当符号段为1代表负无穷,符号段为0代表正无穷。一般用在表示两个很大的数相乘,结果溢出或零除时。

3.2不是值(NaN)

当阶码段全为1,且小数段非全0时,结果被称为NaN(Not a Number),一般表示一些非法运算。如对负数开根号或无穷数的相互运算时。

3.数字示例

下图表示了8位浮点格式的非负值,且符号段占1位,阶码段占4位,小数段3位,偏置量Bias为2^3 - 1 =7。


相关文章

  • PHP浮点数精度问题

    PHP常见的浮点数“bug” 浮点数的表示形式 浮点数的表示(IEEE 754): 浮点数, 以64位的长度(双精...

  • 理解C语言浮点数的存储

    IEEE-754标准 目前世界上使用最为广泛的小数表示方法是浮点数表示法,而浮点数通用的算术标准是IEEE-754...

  • IEEE浮点数表示

    该文主要介绍一个浮点数在计算机中的表示,属于很底层的知识点 介绍计算机如何表示浮点数之前,先了解一下日常生活中,我...

  • IEEE浮点数表示

    IEEE标准中浮点数用形如V=(-1)^s x M x 2^E的格式表示一个小数:s☞符号位,s=1代表负数,s=...

  • 深入浅出iOS浮点数精度问题 (上)

    目录 一,浮点数精度丢失? 二,整数的二进制表示 三,浮点数的二进制表示 四,iEEE 754浮点数的手动转换 五...

  • 该死的IEEE-754浮点数,说「约」就「约」,你的底线呢?以J

    IEEE 754 表示:你尽管抓狂、骂娘,但你能完全避开我,算我输。 一、IEEE-754浮点数捅出的那些娄子 首...

  • Java 中 float 类型的内存结构分析

    前言 本文按照以下顺序讲解: 浮点数 IEEE 754定义的浮点数表示法 float 的最大值分析 题目分析 浮点...

  • IEEE754表示浮点数

    组成 IEEE754标准包含一组实数的二进制表示法。它有三部分组成: 符号位 指数位 尾数位 三种精度的浮点数各个...

  • IEEE浮点数表示法

    IEEE浮点数标准将数表示成形式: 符号数:决定了数是负的()还是正的(),其中把数值的符号位解释当做是一种特殊情...

  • 浮点数运算原理

    据以上分析,IEEE 754标准中定义浮点数的表示范围为: 单精度浮点数二进制:± (2-2^-23) × 212...

网友评论

    本文标题:IEEE浮点数表示

    本文链接:https://www.haomeiwen.com/subject/eappjhtx.html