【IEEE754制32位浮点数】与十进制相互转换
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位浮点数】与十进制相互转换相关推荐
- 32位浮点数转十进制与二进制
32位浮点数的第一位为S(符号位),代表正负符号. 后面八位代表指数 最后使用23位来代表有效数 那么将浮点数转十进制数计算时可以采用以下公式来计算: s为0代表正数,s为1代表负数. e由浮点数转为 ...
- 32位浮点数转十进制
32位浮点数一般的表示方法如下: 1)S为1位数符,为0时表示正数,为1时表示负数: 2)阶码为8位,以2为底,阶码 = 阶码真值 + 127: 3)尾数为23位,采用隐含尾数最高位1的表示方法,实际 ...
- IEEE-754标准(32位) 十六进制转换十进制浮点数
因实验需要,读取陀螺仪的数据是16进制的数据,需要将该数据转化为10进制方便自己查看,理解.记录如下: 1.将(32位)16进制IEEE-754标准浮点数就是用十六进制表示浮点,称为单精度浮点数. f ...
- 32位浮点数规格化 计算
表示格式: S:浮点数的符号位 E:阶码 M:位数 e:指数真值 公式: x =( -1 )s × ( 1.M ) × 2e E = e +127 计算方式: 现在变成 2 进制 带入公式算出 S.M ...
- c语言 32位浮点数,32位浮点数范围的求法
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:32位浮点数范围的求法回答:浮点数在计算机中用以近似表示任意某个实数.具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计 ...
- 计算机组成原理——32位浮点数的不同表示
一般现在普遍见到的32位浮点数可能会有以下两种结构: 第一种: Es:阶符 Ms:数符 E1~E8:阶码 ...
- 32位浮点数在威纶触摸屏显示_MCGS触摸屏与与西门子 S7-1200 PLC以太网通讯
触摸屏(touch screen)又称为"触控屏"."触控面板",是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系 ...
- 认识32位浮点数(分别输出符号,阶码,尾数)
按IEEE 754标准,32位浮点数的标准格式如下图所示. 例如,一个浮点数的二进制数格式为: 则该数的三个部分分解如下: 1)符号位:0 2)阶码部分:10000010 3)尾数部分:0110110 ...
- 32位浮点数的一些理解
32位浮点数的一些理解 1.定点的缺点:对于一个系统可能出现一些特别大的数和特别小的数,如果用定点表示就会很僵硬,位数一定就不能同时表达特别大的数和特别小的数. 2.对于定点123.625,用科学计数 ...
最新文章
- python入门经典以解决计算问题为导向_Python入门经典 以解决计算问题为导向的Python编程 待完善...
- centos 5.3 配置sendmail服务器
- 将分享按钮加入到页面中
- SQL5 将查询后的列重新命名(数据库的几种去重方法)
- 【熊猫多模式站群开发日志】流程总览
- PyQt4(简单界面)
- 爬虫智能解析库 Readability 和 Newspaper 的用法
- ffmpeg命令_温故知新:ffmpeg操作《天空之城》。窗口党勿入,都是指令!
- java面试题之什么是ThreadLocal?底层如何实现的?
- 二级c语言改错题库,二级C语言题库-改错题(参考).doc
- 70多套java必练项目,适合小白上手!
- 斐讯路由刷华硕固件后指示灯颜色修改
- 上古卷轴5无法启动 因为计算机丢失,《上古卷轴5:天际》无法启动nmm解决方法...
- Swarm(bzz)软启动版本v.0.0-rc2
- 百度地图语音导航开发
- Linux常用命令——rlogin命令
- 关于SDRAM存储器
- Adobe Illustrator(AI)中输入希腊字母等特殊字符
- 攻防世界-re2-cpp-is-awesome
- python多线程下载视频_python 实现多线程下载m3u8格式视频并使用fmmpeg合并
热门文章
- 高通项目端口每次跳出要求安装驱动解决方法
- SWFObject 2.0官方文档
- 关于swfobject.js详解
- 超静音 无振动 | TRINAMIC的3D打印机解决方案
- 舵机速度控制原理细解
- SpringCloud-07-新一代路由网关Spring Cloud Gateway
- spring的工作原理总结
- C++ int 转字符串
- Redis常用操作之批量删除keys,和清空整个数据库
- 关于cocos creator 2.0的废除cc.p接口Sorry, cc.p is deprecated. Please use cc.v2 instead