目录

1.浮点数的原理简析

1.1.存储格式

1.2.原理

1.3.分类

1.3.1.有限数

1.3.2.零

1.3.3.弱规范数

1.3.4.无穷大

1.3.5.NaN

1.4.特殊的数

1.4.1.最小的正float有限数

1.4.2.最大的float有限数

1.4.3.最小的正float弱规范数

1.4.4.FLT_EPSILON

1.5.结语

2.浮点数比较大小的问题


1.浮点数的原理简析

1.1.存储格式

  我平时在写浮点数相关的代码时,经常会用一些可笑的技巧来“规避”浮点数运算导致的随机误差,浮点数运算细节晦涩难懂,我确实一直对浮点数原理及其运算一知半解,写起代码来战战兢兢,本文参考刘纯根所著的《浮点计算——编程原理、实现与应用》,把浮点数的原理简单梳理一遍(主要以float为例),作为笔记,以备查验。

IEEE754标准规定,浮点数由“符号”、“指数”和“尾数”3部分构成:

                                   浮点数原理解析和相关问题分析(博文整理)

下表列出C++中不同精度浮点数内存布局: 

浮点数原理解析和相关问题分析(博文整理)

浮点数原理解析和相关问题分析(博文整理)

浮点数原理解析和相关问题分析(博文整理)

浮点数原理解析和相关问题分析(博文整理)

1.2.原理

浮点数原理解析和相关问题分析(博文整理)

1.3.分类

浮点数原理解析和相关问题分析(博文整理)

1.3.1.有限数

浮点数原理解析和相关问题分析(博文整理)

1.3.2.零

浮点数原理解析和相关问题分析(博文整理)

1.3.3.弱规范数

浮点数原理解析和相关问题分析(博文整理)

1.3.4.无穷大

浮点数原理解析和相关问题分析(博文整理)

1.3.5.NaN

浮点数原理解析和相关问题分析(博文整理)

1.4.特殊的数

1.4.1.最小的正float有限数

浮点数原理解析和相关问题分析(博文整理)

1.4.2.最大的float有限数

浮点数原理解析和相关问题分析(博文整理)

1.4.3.最小的正float弱规范数

浮点数原理解析和相关问题分析(博文整理)

1.4.4.FLT_EPSILON

浮点数原理解析和相关问题分析(博文整理)

1.5.结语

  浮点运算,深奥、晦涩、难懂!我们对浮点运算的所有想当然的假设可能都是不靠谱的。正如Herb Sutter所说,世界上的人可以分3种:
  ● 一种是知道自己不懂浮点运算(我就是);
  ● 一种是以为自己懂浮点运算;
  ● 最后一种是极少的专家级人物,他们想知道自己是否有可能最终完全理解浮点运算。

2.浮点数比较大小的问题

最后附上被整理的两篇博文:

https://blog.csdn.net/whyel/article/details/81067989

https://blog.csdn.net/liujian20150808/article/details/50630546

相关文章:

  • 2021-11-13
  • 2022-01-14
  • 2021-09-17
  • 2021-12-09
  • 2022-12-23
  • 2021-06-07
  • 2021-07-04
  • 2021-11-28
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-10-10
  • 2022-02-06
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案