浮点数表示(IEEE 754)

article/2025/10/15 21:23:07

引入

N = S × r j N = S×r^j N=S×rj

  • N:浮点数
  • S:尾数
  • r:基数
  • j:阶码

举个例子:
123.456 = 1.23456 × 1 0 2 123.456 = 1.23456×10^{2} 123.456=1.23456×102
其中123.456是浮点数,1.23456是尾数,10是基数(10进制),2是阶码。

可以发现,表示123.456的方法不唯一,比如:
123.456 = 12.3456 × 1 0 1 = 0.123456 × 1 0 3 = 0.0123456 × 1 0 4 = . . . 123.456 = 12.3456×10^{1} = 0.123456×10^{3} = 0.0123456×10^{4} = \quad ... 123.456=12.3456×101=0.123456×103=0.0123456×104=...


在二进制中也是如此:

10进制转化为二进制
11.62 5 10 = 1011.10 1 2 11.625_{10} = 1011.101_{2} 11.62510=1011.1012

表示方法同样多种:
1011.101 = 0.1011101 × 2 100 = 1.011101 × 2 11 = . . . 1011.101 = 0.1011101×2^{100} = 1.011101×2^{11} = \quad... 1011.101=0.1011101×2100=1.011101×211=...
指数部分也用二进制表示,2100表示24211表示23

可以看出,表示一个数的方式太多,因此要有一个规范(IEEE 754),在讲规范之前,先了解一下基础概念。

定点数

计算机中是没有通过硬件来表示小数点的,因此小数点及其位置是隐含规定的,所谓定点就是小数点的位置不变。

定点数又分为定点整数和定点小数。

定点整数

小数点隐含在最低位之后,最高位为符号位。

  • 为什么有符号位?

    计算机中用补码表示数(补码不会有+0-0之分),补码的最高位为符号位。

举个例子:
− 1 3 10 = − 110 1 2 -13_{10} = -1101_{2} 1310=11012
用8位的定点整数来表示10进制的-13

如果是13,则将符号位改为0

  • 为什么符号位0表示正,1表示负?

    数的符号表示为:-1符号位

    • 若符号位=0,则数的符号为-10 = 1,表示正数
    • 若符号位=1,则数的符号为-11 = -1,表示负数

定点小数

小数点隐含与数值位与符号位之间

举个例子:
0.62 5 10 = 0.10 1 2 0.625_{10} = 0.101_{2} 0.62510=0.1012
若用8位的定点小数来表示10进制的0.625

然而生活中的数常常不是纯整数或是纯小数,而是两者的结合

IEEE 754规范

因为表示一个浮点数的方法有很多,但是计算机中要有一个统一的规范,这规范就是IEEE 754

本文讲IEEE 754Float32标准
V = − 1 S × M × R E V = -1^{S}×M×R^{E} V=1S×M×RE
V:浮点数

R:基数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7EG1yxTS-1649169898441)(../../Figure/image-20220405213717011.png)]

  • 符号:1bit
  • 指数:8bit
  • 尾数:23bit

同时规定:

  • 1 ≤ M < 2 1≤M<2 1M2

    因此尾数的第一位固定为1,并且在表示时忽略。

  • 尾数M采用的是定点小数表示。

  • E为无符号整数,但因为指数可以为负数,因此IEEE 754规定E减去127(这个127有个高大上的名字:偏置)

    指数有8bit并且是无符号整数,所以E∈[0, 255]

    而减去127后,E∈[-127, 128]

  • 指数E采用的是定点整数表示。

  • 用符号位来表示尾数的符号

示例1

− 9.62 5 10 = − 1001.10 1 2 -9.625_{10} = -1001.101_{2} 9.62510=1001.1012

尾数M = 1.001101

指数E = 310 = 112

  • 上面提到过,尾数小数点左侧的1忽略,因此尾数表示为:

  • 指数在表示时会减去127,因此指数部分的实际值应该为:
    127 + 3 = 13 0 10 = 1000001 0 2 127+3 = 130_{10} = 10000010_{2} 127+3=13010=100000102
    指数表示为:

  • -9.625为负数,因此符号位=1(-11=-1),符号位表示为:

-9.625表示为:

示例2

0.0937 5 10 = 0.0001 1 2 0.09375_{10} = 0.00011_{2} 0.0937510=0.000112

2 − 4 = 0.0625 , 2 − 5 = 0.03125 , 2 − 4 + 2 − 5 = 0.09375 2^{-4} = 0.0625, \quad 2^{-5} = 0.03125,\quad 2^{-4}+2^{-5} = 0.09375 24=0.0625,25=0.03125,24+25=0.09375

  • 尾数M = 1.1

    尾数的小数点左侧的1忽略,所以M表示为:

  • 指数E = -4

    因为要减去127这个偏置,所以E=123(123-127=-4),二进制为:01111011,所以E表示为:

  • 符号S = 0

    因为0.09375为正数,符号为-10 = 1,符号位表示为:

    在这里插入图片描述

0.09375表示为:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/broYV1m6.shtml

相关文章

c++ 浮点数表示

1.为何称为浮点数 对于一个浮点数来说,其通常可以科学计数法来表示,而对于一个浮点数来说,由于次方可变,故小数点可以左右移动。 eg:-36.5 ,及可以表示为:,也可以表示为&#xff0…

Java中浮点数的表示方法

Java中浮点数的表示方法 Java中浮点数的表示方法 1.计算机中的表示方法2.具体分析表示方法 小结 3.移位存储 小结 1.计算机中的表示方法 对于float来说,4个字节,32位,0-22位表示尾数,23-30(8位)表示指数,31位表示符…

浮点数的表示

科学计数法 浮点数的表示 阶码E反映表示范围及小数点的实际位置 位数M的数值部分的位数n反映浮点数的精度 浮点数尾数的规格化 左移三位 0.110;1.0100000 表示范围 浮点数标准 IEEE 754 移码 阶码真值移码-偏移量

dsp处理浮点数_DSP中浮点数的表示方法

DSP中浮点数的表示方法 tongxin | 2009-03-20 15:16:17 阅读:2484 发布文章 先介绍一下IEEE754中浮点数的定义(这里只介绍单精度浮点数): %A %A 单精度浮点数由4字节(32位)组成,且分成3段:数符s(0表示正数,1表示负数…

C语言浮点数的各种表示方法

2022.8.7更新 学习js的过程中发现了0.10.2更深一层的运算过程,感兴趣的可以看看这个博主写的帖子。 JavaScript 浮点数之迷:0.1 0.2 为什么不等于 0.3? ​​​​​​​ 前提: 由于存在精度限制,浮点数只是⼀个近似值&…

浮点数的表示方法是什么?

是已知的C/C编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(或-)、指数和尾数来表示,底数被确定为2。所以在IEEE浮点数表示法里&#x…

浮点数表示总结

浮点数 早期的计算机使用定点数来表示实数,由于定点数的小数点位置固定,而计算机字长有限,定点数无法表示很大和很小的实数,因此而在计算机科学中有了对于实数近似值数值的表示法——浮点数。这种表示法类似于十进制中的科学计数…

计算机中浮点数表示

浮点数表示 浮点数在计算机中由符号位、指数和尾数组合而成。 通常,浮点数表示为如下形式: F为小数(尾数)字段值,E为指数字段值。 溢出(浮点的上溢):正的指数太大而超过了指数字段的表示范围。 下溢:负的指数太大而…

计算机组成原理浮点数表示

浮点数表示 浮点数的表示分为阶码和尾数; 比如3.026*1011;阶码是11;尾数是3.026; 对于阶码: 阶符为正,小数点向后移n位(n表示阶的大小); 阶符为负,小数点向前移n位(n表示阶的大小&a…

初步了解机器中浮点数表示方法

浮点数是小数点位置变化的数,能表示的范围比定点数大很多。 比如二进制数11.11可以表示为111.12-1或1.11121等,我们由此规律能得到二进制数更一般形式N2EF,E称为阶码,F称为尾数。这个数在机器里怎么存呢,是把正负符号…

32位浮点数表示方法

今天开始给大家介绍计算机组成原理课程,本文主要内容是32位浮点数表示方法。 一、32位浮点数构成 32位浮点数是计算机中常见的一种数据类型,该数占据32bit空间,可以表示较大范围内的整数和小数。32位浮点数由三部分组成,分别是符…

浮点的表示方法

浮点表示方法 一、浮点的表示方法一、单精度类型(float)二、双精度类型(double)三、IEEE 754标准 单精度名称本身的含义是“单字长精确的程度”。跟什么32位、64位有没有关系, 取决于系统支持的字长(word)是几个字节(…

浮点数的表示方法

把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示。这种把数的范围和精度分别表示的方法,相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。 在计算机中一个任意二进制数N可以写成: …

IOS磁力下载软件,老司机必备品

软件名为袋鼠下载,一款比较傲娇的APP目前仅支持iOS端,全程使用无广告无弹窗,关键支持任何资源的下载,直链、磁力、BT什么的通通不再话下,也不会针对性的进行限速,这样的免费产品在Android中都属不多见的精品…

这2个在线资源网千万别错过,老司机人手一份,一年省下好几千

早些时候,国内的电影资源网站大部分是搬运了国外的破解资源,并非自己 “ 原创 ” 出来的,这两天很多人都在想尽办法求《哪吒》熟肉资源,我们这边的电影院已经下播了,然后大家也知道,新出的电影在下播之后也…

实用的在线网站

目录 文档类 1. 轻松玩转PDF 2. Convertio:在线的文件转换器 3. CleverPDF 4. vvv文档在线导出工具 5. 微信公众号格式化编辑器 6. Process On:免费在线作图,实时协作 7. ALL TO ALL(在线格式转换) 8. Office…

Linux在线安装jdk

Linux在线安装jdk 远程连接Xshell后,切换到root用户(使用su命令切换到root用户) 使用cd命令切换到/usr目录(/usr目录:用户的很多应用程序和文件都放在这个目录下面,类似于windows下的program files目录) cd /usr在/usr下创建目录java&#x…

想要成为python大神,这17个老司机收藏的国外免费学习网站不可错过!

用Python编写代码一点都不难,事实上它一直被赞誉为最容易学的编程语言。 如果你准备学习web开发, Python是一个不错的开始,甚至想做游戏的话,用Python来开发游戏的资源也有很多。 许多程序员都把Python作为编程之旅的开始,然后是像PHP和Ruby这样的语言。它也是最热门的W…

老司机谈鉴黄,新一代“鉴黄师”是如何养成的?

在互联网高速发展的今天,直播平台,内容社区,视频网站等UGC/PGC平台蓬勃发展,如雨后春笋般出现。但巨大的安全隐患也接踵而至,内容审核成为企业最关键的一道防火墙。企业招聘大量的内容审核专员来应对包括色情、暴力、犯…

福利:tumblr五年驾龄老司机必备利器

大名鼎鼎的tumblr不用多说,分享几个非常好用的软件工具,全都是亲测好用 如果你发现更好用的工具,tell me tell me 官方app Tumblr 安卓版 Tumblr iOS版 下载视频 电脑端 win:维棠 推荐此软件可批量下载某个博主的视频&#xff0c…