国际统一标准IEEE754规定了浮点数的表示方法,这里以32位浮点数举例,来陈述一下相互转换的步骤。
格式说明
如上图所示,32位数被分为3部分,符号数、阶码数、尾数。其中阶码是以移码的形式表示,比较特殊。通过图片中的三个字段,我们可以将浮点数还原成真实的二进制数值,之后可以在从二进制转十进制。计算公式为
公式很好理解,唯一让人有疑问的就是阶码的计算过程。接下来我介绍一个我自己的助记方法(仅助记,非正确结论)
为什么是E-127?
因为E是移码表示,而移码的计算(移码=真值+偏置值),但是我们别忘了,我们的尾数部分的值其实我们还有一个整数part默认的1没有移到小数点后
,所以,E=移码-1
。
故 阶码真实值=E +1 - 偏置值
. 在32位的8位阶码中反映出来的就是减去127。
tips:阶码的解释只是助记,是错误的理解。具体原因可以参考https://blog.csdn.net/i6223671/article/details/88312191 考研408题目一般比较基础,会算即可。
十进制数转浮点数
不多废话,直接放图,很好理解。