问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

快速了解IEEE754标准32位浮点数的转换

创作时间:
作者:
@小白创作中心

快速了解IEEE754标准32位浮点数的转换

引用
CSDN
1.
https://blog.csdn.net/Ochazuke/article/details/136582229

IEEE754标准是计算机中表示浮点数的国际标准,广泛应用于各种计算设备中。本文将详细介绍IEEE754标准中32位浮点数的转换方法,帮助读者理解计算机如何存储和处理浮点数。

什么是IEEE754标准的32位浮点数

计算机存储的方式主要有两种,分别是定点数和浮点数。为了存储更多的位数,科学家们通过科学计数法创造了浮点数的存储方式。

需要记住的是,定点数存储的范围小,但是精确;浮点数存储的范围更大,但是不精确

浮点数的表示

一个浮点数 (Value) 的表示可以这样表示:

这个要怎么理解呢,看上面那幅图十进制的1.75转化为二进制的表示。当然上面那幅图指数是二进制,实际上我们写的时候写成十进制可能更好去理解,那

十进制是 小数X10的几次方
二进制当然就是 小数X2的几次方

理解的方式自然也是一样的,乘上正数次方,小数点向右移动,乘上负数次方,小数点向左移动。

储存方式

我们有三十二位地址,也就是4byte(32bit)。IEEE754规定:在32位浮点数中,符号位为第一位,指数位是后面八位,小数位是后面的23位。

  • 符号位:0为“+”,1为“-”
  • 指数位(阶码):在 IEEE 754 浮点数标准中,阶码是用移码表示的,移码的定义是移码 = 真值 + 偏置值。在 IEEE 754 标准中,移码的偏置值是 2^(n-1)-1。因此,真正的指数可以表示为真正的指数 = 32位浮点数从前往后第二位到第九位的二进制数 - 2^(8-1)-1,即指数 = 八位阶数 - 127
  • 小数位(尾数):尾数码部分采用原码表示,且尾数码隐含了最高位 1,在计算时我们需要加上最高位1,即 1.M

IEEE754标准的32位浮点数的转换

接下来我们来看一个具体的实例:将IEEE754标准格式存储的十六进制浮点数转换成十进制的数值。

十六进制浮点数:41360000

首先,我们先把十六进制转化为2进制:

0 100 0001 0 011 0110 0000 0000 0000 0000

我们按照上面讲的,把32位浮点数划分为1、8、23,三组数字,然后一组一组看:

  • 符号位:0,表示32位浮点数是一个正数
  • 指数位(阶码):1000 0010,转化成十进制为130。注意,此时的130为移码,指数的真值为移码减去偏置值,即130 - 127 = 3
  • 小数位(尾数):011 0110 0000 0000 0000 0000,因为尾数储存的时候省略了1,所以这个数应该看作1.011011

那么这个浮点数三个部分我们都知道了,组合起来就是这个数的十进制数值:

理解起来很简单,就是正数,二进制数乘上2的3次方,和科学计数法一样,正3次方,小数点往后移动三位就行,表示出来就是:

1011.011

转化为十进制:

= 11.375

所以11.375就是最终的结果。

十进制化为二进制浮点数表示就是把整体逻辑反过来了,这里就不举例子了。

特殊情况

形式
指数
小数部分
0
0
非规约形式
0
非0
规约形式
1到
任意
无穷
0
NaN
非零
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号