漂浮的点与盒子

这篇文章主要介绍了 IEEE 754 浮点数的工作原理,包括无符号整数、科学计数法、小数点位置、指数值、物理存储、次正规数、非数(NaN)、精度损失和操作等方面。

主要观点

  • 计算机处理数字受限于硬件,CPU 原生理解两种类型的数:整数(无符号整数、有符号整数)和浮点数。
  • 浮点数由数字和小数点位置(由指数决定,二进制表示为 2 的幂)组成,每个数有唯一的表示。
  • 强制规范的规范队列(以 0.1 开头)对极小数有不利影响,次正规数可解决此问题。
  • NaN 分为信号 NaN 和安静 NaN,安静 NaN 的有效负载可在编程语言运行时携带信息。
  • 浮点数精度损失有两种情况:数字超出尾数窗口会丢失,基于二进制表示的格式也会导致精度损失。
  • 可通过移动小数点位置等操作来处理浮点数而不损失精度。

关键信息和重要细节

  • 无符号整数:以二进制表示正整数,8 位 CPU 中 2 表示为00000010,也可通过添加小数点和填充 0 以不同方式表示。
  • 科学计数法:在十进制中,1e0表示1*10^0等,在二进制浮点数中,通过移动指数来改变小数点位置,两者在数学上等价。
  • 小数点位置:二进制格式强制使用特定队列,小数点位置由指数决定,且在浮点数外部。
  • 指数值:指数以偏置形式表示,最小非零指数表示最小指数值,全 1 表示±NaN 或±Inf,全 0 表示次正规数。
  • 物理存储:IEEE 754 浮点数的二进制格式包括符号位、偏置指数和数字,通过特定方式存储。
  • 次正规数:当指数全为 0 时,实际指数为emin,规范队列以0.0开头,若尾数全为 0 则为 0。
  • 非数(NaN):NaN 由指数全 1 和尾数至少一位为 1 组成,分为信号 NaN 和安静 NaN,安静 NaN 的有效负载可携带信息。
  • 精度损失:尾数是数字窗口,指数决定其位置,超出窗口的数字会丢失,基于二进制表示的格式也会导致精度损失。
  • 操作:可通过移动小数点位置等操作处理浮点数,在 C 语言中可通过特定方式提取浮点数的各部分。

总结:文章详细解释了 IEEE 754 浮点数的工作原理,包括其各个组成部分和特性,对于理解计算机中浮点数的处理有重要意义。

阅读 12
0 条评论