当前位置:   article > 正文

IEEE754标准浮点数转换_ieee754单精度浮点数转换公式

ieee754单精度浮点数转换公式

IEEE754标准是一种浮点数表示标准,一般分为单、双精度两种,单精度是32位的二进制数,双精度是64位的二进制数,一个浮点数的组成分为三个部分
①第1位是数符s,s=1表示负数,s=0表示正数。
②第2-9位为阶码E, (双精度为2-12位)
③第10-32位为尾数M (双精度为13-64位)
转换大致过程如下:
首先将十进制数转为二进制数,用类似于科学计数法的形式表示成
num=(-1)^s *(1+M)* 2^(E-127)(单精度)
num=(-1)^s *(1+M)* 2^(E-1023)(双精度)
然后将每部分算出的数值按顺序排列
例如:
-0.0625=-0.0001=-1.0*2^(-4)
s=1,M=1-1=0,E=-4 +127=123=0111 1011 ,E(双精度)=-4 +1023=1019 =0111 1111 011
单精度:1011 1101 1000 0000 0000 0000 0000 0000   (S E M顺序)
双精度:1011 1111 1011 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

二进制怎么求?

举例:22.8125转二进制,这样计算:
整数和小数分别转换。
整数除以2,商继续除以2,得到0为止,将余数逆序排列。
22 / 2  11 余0
11/2     5  余 1
5 /2      2  余 1
2 /2      1  余 0
1 /2      0  余 1
所以22的二进制是10110
小数乘以2,取整,小数部分继续乘以2,取整,得到小数部分0为止,将整数顺序排列。
0.8125x2=1.625 取整1,小数部分是0.625
0.625x2=1.25 取整1,小数部分是0.25
0.25x2=0.5 取整0,小数部分是0.5
0.5x2=1.0 取整1,小数部分是0,结束
所以0.8125的二进制是0.1101
十进制22.8125等于二进制10110.1101
工具:http://www.styb.cn/cms/ieee_754.php

思路:第一步求二进制,负数按照正数处理,不用考虑原反补,s代表正负(正负数转换后只是第一位不同)

第二步按照公式计算S、E、M,其中E是需要转换成二进制的,但是M并不需要不够的后面补0。

比如:22.8125等于二进制10110.1101

22.8125--->10110.1101-->1.01101101* 2^4

单精度:S=0,E=4+127=131(8位),M=0.01101101(23位)

ans=0   10000011    01101101000000000000000

双精度:S=0,E=4+1023=1027(11位) M=0.01101101 (52位)

ans=0   10000000011  0110110100000000000000000000000000000000000000000000

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号