IEEE754制32位浮点数转换为十进制

首先了解一下IEEE754制32位浮点数的存储方式

一个由IEEE745制的32位浮点数由三部分组成

组成部分 位数 含义
符号位 1位 0为正,1为负
指数位 2~9位 类比十进制的科学计数法,此处以2为底,指数位为幂。注意还需要加上-127的偏移量
尾数位 10~32位 省略了1. 实际为1.(尾数位),类似小数的二进制写法

(一)IEEE754制32位浮点数转为十进制

核心逻辑:
IEEE制浮点数 ⇒ \Rightarrow ⇒浮点数的二进制表示 ⇒ \Rightarrow ⇒浮点数的十进制表示

我们用例子来帮助理解
我们有一个用IEEE754二进制表示的32位浮点数: 0 1000 0011 0100 1000 0000 0000 0000 000, 求它所代表的十进制浮点数是多少?
第一步:
符号位为0 ⇛ \Rrightarrow ⇛正数

第二步:
尾数部分: 1.0100 1000 0000 0000 0000 000
将多余0舍去得1.01001

第三步:
指数位: ( 10000011 ) 2 (1000 0011)_2 (10000011)2​= ( 131 ) 10 (131)_{10} (131)10​
加上偏移量:131+(-127)=4

第四步:组合: 1.01001 × 2 4 = 10100.1 1.01001\times2^4=10100.1 1.01001×24=10100.1

至此已将IEEE制浮点转换为浮点数的二进制表示

最后再将其转换为十进制:
1 × 2 4 + 0 × 2 3 + 1 × 2 2 + 0 × 2 1 + 0 × 2 0 + 1 × 2 − 1 = 20.5 1\times 2^4+ 0\times2^3+1\times2^2+0\times2^1+0\times2^0+1\times2^{-1}=20.5 1×24+0×23+1×22+0×21+0×20+1×2−1=20.5

(二)十进制浮点数转为IEEE754制32位

核心逻辑:
十进制浮点数 ⇒ \Rightarrow ⇒二进制浮点数 ⇒ \Rightarrow ⇒IEEE制浮点数

我们用例子来帮助理解
已知一个浮点数34.625,求它IEEE754制32位二进制表示为多少?

第一步:
由正负确定IEEE制符号位,若正则为0,若负则为1
为正数:符号位可得,为0

第二步:
将十进制浮点数转为二进制浮点数。(可以参考这一篇文章带小数十进制转二进制–图解)
( 34.625 ) 10 = ( 100010.101 ) 2 (34.625)_{10}=(100010.101)_2 (34.625)10​=(100010.101)2​

第三步:
将得到的二进制浮点数转化为1.xxx的形式
100010.101=1.00010101 × 2 5 \times 2^5 ×25
则尾数位可得,为00010101

第四步:
将偏移后的指数位复原
x 10 x_{10} x10​+ ( − 127 ) 10 (-127)_{10} (−127)10​= ( 5 ) 10 (5)_{10} (5)10​
x 10 x_{10} x10​= ( 132 ) 10 (132)_{10} (132)10​= ( 10000100 ) 2 (1000 0100)_2 (10000100)2​
指数位可得,为1000 0100,最后再用0补齐剩余位数至23位

【IEEE754制32位浮点数】与十进制相互转换相关推荐

  1. 32位浮点数转十进制与二进制

    32位浮点数的第一位为S(符号位),代表正负符号. 后面八位代表指数 最后使用23位来代表有效数 那么将浮点数转十进制数计算时可以采用以下公式来计算: s为0代表正数,s为1代表负数. e由浮点数转为 ...

  2. 32位浮点数转十进制

    32位浮点数一般的表示方法如下: 1)S为1位数符,为0时表示正数,为1时表示负数: 2)阶码为8位,以2为底,阶码 = 阶码真值 + 127: 3)尾数为23位,采用隐含尾数最高位1的表示方法,实际 ...

  3. IEEE-754标准(32位) 十六进制转换十进制浮点数

    因实验需要,读取陀螺仪的数据是16进制的数据,需要将该数据转化为10进制方便自己查看,理解.记录如下: 1.将(32位)16进制IEEE-754标准浮点数就是用十六进制表示浮点,称为单精度浮点数. f ...

  4. 32位浮点数规格化 计算

    表示格式: S:浮点数的符号位 E:阶码 M:位数 e:指数真值 公式: x =( -1 )s × ( 1.M ) × 2e E = e +127 计算方式: 现在变成 2 进制 带入公式算出 S.M ...

  5. c语言 32位浮点数,32位浮点数范围的求法

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:32位浮点数范围的求法回答:浮点数在计算机中用以近似表示任意某个实数.具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计 ...

  6. 计算机组成原理——32位浮点数的不同表示

    一般现在普遍见到的32位浮点数可能会有以下两种结构: 第一种: Es:阶符                              Ms:数符 E1~E8:阶码                    ...

  7. 32位浮点数在威纶触摸屏显示_MCGS触摸屏与与西门子 S7-1200 PLC以太网通讯

    触摸屏(touch screen)又称为"触控屏"."触控面板",是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系 ...

  8. 认识32位浮点数(分别输出符号,阶码,尾数)

    按IEEE 754标准,32位浮点数的标准格式如下图所示. 例如,一个浮点数的二进制数格式为: 则该数的三个部分分解如下: 1)符号位:0 2)阶码部分:10000010 3)尾数部分:0110110 ...

  9. 32位浮点数的一些理解

    32位浮点数的一些理解 1.定点的缺点:对于一个系统可能出现一些特别大的数和特别小的数,如果用定点表示就会很僵硬,位数一定就不能同时表达特别大的数和特别小的数. 2.对于定点123.625,用科学计数 ...

最新文章

  1. python入门经典以解决计算问题为导向_Python入门经典 以解决计算问题为导向的Python编程 待完善...
  2. centos 5.3 配置sendmail服务器
  3. 将分享按钮加入到页面中
  4. SQL5 将查询后的列重新命名(数据库的几种去重方法)
  5. 【熊猫多模式站群开发日志】流程总览
  6. PyQt4(简单界面)
  7. 爬虫智能解析库 Readability 和 Newspaper 的用法
  8. ffmpeg命令_温故知新:ffmpeg操作《天空之城》。窗口党勿入,都是指令!
  9. java面试题之什么是ThreadLocal?底层如何实现的?
  10. 二级c语言改错题库,二级C语言题库-改错题(参考).doc
  11. 70多套java必练项目,适合小白上手!
  12. 斐讯路由刷华硕固件后指示灯颜色修改
  13. 上古卷轴5无法启动 因为计算机丢失,《上古卷轴5:天际》无法启动nmm解决方法...
  14. Swarm(bzz)软启动版本v.0.0-rc2
  15. 百度地图语音导航开发
  16. Linux常用命令——rlogin命令
  17. 关于SDRAM存储器
  18. Adobe Illustrator(AI)中输入希腊字母等特殊字符
  19. 攻防世界-re2-cpp-is-awesome
  20. python多线程下载视频_python 实现多线程下载m3u8格式视频并使用fmmpeg合并

热门文章

  1. 高通项目端口每次跳出要求安装驱动解决方法
  2. SWFObject 2.0官方文档
  3. 关于swfobject.js详解
  4. 超静音 无振动 | TRINAMIC的3D打印机解决方案
  5. 舵机速度控制原理细解
  6. SpringCloud-07-新一代路由网关Spring Cloud Gateway
  7. spring的工作原理总结
  8. C++ int 转字符串
  9. Redis常用操作之批量删除keys,和清空整个数据库
  10. 关于cocos creator 2.0的废除cc.p接口Sorry, cc.p is deprecated. Please use cc.v2 instead