IEEE浮点数 换算方法【超易懂详解】
IEEE浮点数 换算方法【超易懂详解】
- 格式概览
- 转换方法
- 0. 例子说明
- 1. 小学乘除:十进制 转 二进制
- 2. 小学数学:科学计数法
- 3. 儿童观察力:提取三个元素
- 4. 幼儿手工:收尾拼接
- 附录
格式概览
举个例子,十进制的 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.1101∗101
3. 儿童观察力:提取三个元素
我们接下来要用到分辨男女卫生间的观察力
来观察一下这张图:
图中将IEEE浮点数用三种颜色标示出三个关键元素:
元素 | 含义 | 详解 |
---|---|---|
(蓝色)sign | 符号 | 0代表当前数为正数,1代表当前数为负数(在这个例子中是0) |
(绿色)exponent | 指数 | 科学计数法的指数加上 2 k − 1 − 1 2^{k-1}-1 2k−1−1后转为二进制表示(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+(28−1−1)=1+127=128(10)=10000000(2)
小 数 : 1101 小数:1101 小数:1101
4. 幼儿手工:收尾拼接
经过上面的步骤之后,答案呼之欲出
符号:0指数:10000000小数:1101
合成得到:
01000000011010000000000000000000 01000000011010000000000000000000 01000000011010000000000000000000
或者用我们的图片来表示:
附录
想要自己练习一下的话可以用这个网站对一下自己的答案是否正确:IEEE浮点数在线转换
IEEE754浮点数标准
【参考链接】
- 科学计数法-七年级课件
- 转:十进制小数转化为二进制小数
- IEEE浮点数在线转换
- 奇怪的男女厕所标志
- IEEE754 浮点数的表示方法
- 浮点数图找不到了,知道的请告知
- 高人指点
IEEE浮点数 换算方法【超易懂详解】相关推荐
- 前端:深拷贝的多种方法(超全详解)
别划走 !走过路过不要错过:错过这个村,我在下一个村等你!坚持每天进步一点点:一天两天可能没发现有效果:但一年365天后你将会感谢今天的自己!!! 今天博主带大家了解一下前端常用的深拷贝方法:(超全详 ...
- 浮点数的加减法运算过程详解(面向小白的)
浮点数的加减法运算过程详解(面向小白的) 一. 浮点数在计算机内的表示 二. 浮点数的加减运算步骤 第一次写博客,难免有疏漏之处,如果有错误请批评指正,感谢! 对于浮点数的加减运算,书上写的名词太多, ...
- oracle home 命令,$ORACLE_HOMEbin目录下所有命令的使用方法及命令详解
求$ORACLE_HOME/bin目录下所有命令的使用方法及命令详解 如题. $ORACLE_HOME/bin目录下有很多命令,那我们平时用到的也不是太多,即使用到的那部分可能用法也不是完全能掌握,所 ...
- python类是实例的工厂_Python设计模式之工厂方法模式实例详解
本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...
- python中文读音ndarray-numpy中的ndarray方法和属性详解
NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...
- python2与python3性能对比_对Python2与Python3中__bool__方法的差异详解
对Python2与Python3中__bool__方法的差异详解 发布时间:2020-08-28 00:08:58 来源:脚本之家 阅读:74 作者:grey_csdn 学习Python面向对象编程的 ...
- 大数据时代 | 数据分析方法及理论详解
大数据时代 | 数据分析方法及理论详解 1 数据分析前,我们需要思考 像一场战役的总指挥影响着整个战役的胜败一样,数据分析师的思想对于整体分析思路,甚至分析结果都有着关键性的作用. 2 分析问题和解决 ...
- getordefault java_Java map.getOrDefault()方法的用法详解
Map.getOrDefault(Object key, V defaultValue)方法的作用是: 当Map集合中有这个key时,就使用这个key值: 如果没有就使用默认值defaultValue ...
- mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解
一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而 ...
最新文章
- Redis的各项功能解决了哪些问题?
- python-jsonrpc框架实现JsonRPC协议的web服务
- Ruby on Rails 的检验方法(Validation Helpers)大全
- html内联框上下重叠,如何解决IOS端两个内联块元素无法上下对齐的问题?
- 35/100. Permutations
- JS 中 call()、apply()、bind() 的用法
- 1.13 编程基础之综合应用 10 判决素数个数 python
- 更改计算机用户文件夹,win10系统怎么自定义C盘用户文件夹名称
- dataframe 如何增加新的索引_带你领略pandas中多表之间如何处理
- 安卓android中国象棋chess程序项目源码源代码,C/C++编程笔记:C语言打造中国象棋游戏,项目源代码分享!,c语言笔记大全...
- Asp.net页面之间传“大量的参数”
- LA3027(并查集)
- Gdiplus的使用
- mysql表锁ix_S、X、IS、IX数据库锁机制 很详细的教程,简单易懂
- 分析了633个中国城市之后,我们发现五分之二都在流失人口...(附统计图)
- A调用B方法,@Transactional事务失效情况
- Wireshark配置安装以及抓包教程详解(win10版)(包含TCP IP ICMP 三次握手 半扫描等相关知识 )
- MM采购定价条件记录表
- 【SQLYOG】SSH ERROR:UNABLE TO OPEN CONNECTION:GETHOSTBYNAME:UNKNOWN ERROR牵引出来的一系列问题...
- CAN-TP(15765-2协议)网络层协议解析