首页 > 其他 > 详细

IEEE754标准

时间:2021-04-11 16:28:18      阅读:27      评论:0      收藏:0      [点我收藏+]

造冰箱的大熊猫@cnblogs 2021/4/11

 

IEEE754标准对十进制浮点数如何转换为二进制格式做出了规定。

IEEE754标准的最新版本为2019版本,废止的版本包括1985和2008版本。

IEEE754规定了两种浮点数格式,32位和64位浮点数,也就是常说的float(单精度)和double(双精度)型数据类型。

 

1、float型浮点数

1)采用32位二进制数存储浮点数。其中,

  • bit31为符号位。0~正,1~负。
  • bit[30:23]为指数部分。
  • bit[22:0]为尾数部分。

2)指数部分=全1,尾数部分=全0,表示±无穷大(±Inf),正负号由bit31决定。

3)指数部分=全1,尾数部分≠全0,表示NaN(Not-a-Number)。NaN用于表示非数值结果,比如对负数开方(在实数域范围内是无解的)。NaN不区分正负。

4)指数部分≠全1,也≠全0,此时的数值被称为normal number。对于normal number,可以理解为将一个实际数值用“以2为底的科学计数法”表示,即value = ±a×2n。其中,

  • ±为正负号,对应符号位。
  • a为位于[1,2)的实数,等于1.×××。将1省略,将0.×××以二进制形式表达(十进制0.5=2-1=二进制0.1,十进制0.25=2-2=二进制0.01),即为尾数部分。
  • n+127等于指数部分。
  • normal number的取值范围为[-(1-2-24)×2128, -2-126] + [2-126,(1-2-24)×2128]。

5)指数部分=全0,此时的数值被称为subnormal number。与normal number类似,value = ±a×2-126。其中,

  • ±为正负号,对应符号位。
  • a为位于[0,1)的实数,等于0.×××。将0省略,将0.×××以二进制形式表达(十进制0.5=2-1=二进制0.1,十进制0.25=2-2=二进制0.01),即为尾数部分。
  • subnormal number的取值范围为[-(1-2-23)×2-126, (1-2-23)×2-126]。

 

2、double型浮点数

emmmm,以后再补充。

 

参考资料

[1] IEEE 754-2019 - IEEE Standard for Floating-Point Arithmetic @ IEEE

IEEE754标准

原文:https://www.cnblogs.com/pandabang/p/14643529.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!