IEEE浮点数 换算方法【超易懂详解】



格式概览

举个例子,十进制的 0.15625 用 32位 IEEE浮点数 格式表示的话就是下面图片中左边方格中的这一串数。
在这里插入图片描述
这样做,比起其他表示方法来说,有非常多的优点。网上有不少文章做了对比,有兴趣可以了解一下。

那么一个十进制数怎么变成这样的呢。



转换方法

0. 例子说明

这里以 3.625 作为例子。

你只需在心中默念 1 2 3 4,它就能变成下面这样
在这里插入图片描述



1. 小学乘除:十进制 转 二进制

第一步是将这个数从十进制转为二进制。

3.625 ( 10 ) = 11.101 ( 2 ) 3.625(10) = 11.101(2) 3.625(10)=11.101(2)

注:(10)代表当前数是十进制,(2)代表二进制。

如果你不知道如何手算十进制转二进制,那可以借助在线转换工具,或者用电脑自带的计算器.



2. 小学数学:科学计数法

第二步是使用幼儿园就教过科学计数法:
在这里插入图片描述
整数位只保留一位有效数字(没有任何有效数字的情况就是非常简单的0了)。

11.101 ( 2 ) = 1.1101 ( 2 ) ∗ 2 1 ( 10 ) 11.101(2) = 1.1101(2) * 2 ^ {1}(10) 11.101(2)=1.1101(2)21(10)



注:等号右边的1.1101是二进制表示法,而2^1是十进制表示法。两种混用了,这是为了方便理解。如果都用二进制表示法的话写作下面这样(都是二进制就不用标括号了):

11.101 = 1.1101 ∗ 1 0 1 11.101 = 1.1101 * 10 ^ {1} 11.101=1.1101101



3. 儿童观察力:提取三个元素

我们接下来要用到分辨男女卫生间的观察力

在这里插入图片描述

来观察一下这张图:

在这里插入图片描述

图中将IEEE浮点数用三种颜色标示出三个关键元素

元素含义详解
(蓝色)sign符号0代表当前数为正数,1代表当前数为负数(在这个例子中是0)
(绿色)exponent指数科学计数法的指数加上 2 k − 1 − 1 2^{k-1}-1 2k11后转为二进制表示(k代表IEEE浮点数为指数部分预留的位数,这里是8-bit,故k=8)
(红色)fraction小数科学计数法中数字部分的小数部分(比如这里是1.1101的1101)

经过上面两步,我们得到的数是

1.1101 ( 2 ) ∗ 2 1 ( 10 ) 1.1101(2) * 2 ^ {1}(10) 1.1101(2)21(10)

那么提取出的三个关键元素就是

符 号 : 0 符号:0 0

指 数 : 1 + ( 2 8 − 1 − 1 ) = 1 + 127 = 128 ( 10 ) = 10000000 ( 2 ) 指数: 1+(2^{8-1}-1)=1+127=128(10)=10000000(2) 1+(2811)=1+127=128(10)=10000000(2)

小 数 : 1101 小数:1101 1101

4. 幼儿手工:收尾拼接

经过上面的步骤之后,答案呼之欲出

符号:0

指数:10000000

小数:1101

合成得到:

01000000011010000000000000000000 01000000011010000000000000000000 01000000011010000000000000000000

或者用我们的图片来表示:

在这里插入图片描述



附录

  1. 想要自己练习一下的话可以用这个网站对一下自己的答案是否正确:IEEE浮点数在线转换



  2. IEEE754浮点数标准
    在这里插入图片描述

  3. 【参考链接】

    1. 科学计数法-七年级课件
    2. 转:十进制小数转化为二进制小数
    3. IEEE浮点数在线转换
    4. 奇怪的男女厕所标志
    5. IEEE754 浮点数的表示方法
    6. 浮点数图找不到了,知道的请告知
    7. 高人指点
  • 19
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值