java中的float-extended-exponent和float有什么区别

时间:2016-01-26 12:16:38

标签: java floating-point jvm jls

Java虚拟机规范的2.8.2. Floating-Point Modes部分描述了float-extended-exponent和float值集。

  1. 这是什么意思?
  2. 它以什么方式影响程序中的浮点表示?
  3. 什么是浮点模式?
  4. 大多数实现都支持哪种表示形式?

2 个答案:

答案 0 :(得分:3)

请参阅您链接的页面的第2.3.2节和表2.1。不同的"价值集"可以代表不同的数字范围。

  

任何浮点值集的有限非零值都可以表示为s·m·2 ^ {e - N + 1},其中s为+1或-1,m为正整数比2N,e是Emin = - (2 ^ {K-1} -2)和Emax = 2 ^ {K-1} -1之间的整数,包括端值,其中N和K是取决于值的参数组。

"扩展指数"值集具有比非扩展指数更大的K值。这意味着他们可以处理幅度大于非扩展指数值集的数字。

答案 1 :(得分:2)

  • 浮点值集是可以使用IEEE 754标准中定义的single floating-point format表示的值集。

  • float-extended-exponent值集是一组具有相同精度(24位)但指数范围更大的值。

有2个浮点模式

  • " FP-strict":使用精确的IEEE 754算法:换句话说,所有float s(和中间计算)都是使用 float值集中的值计算的
  • "不是FP-strict":允许扩展范围数,即float s(和中间值计算)可以取 float-extended-exponent值集中的值

模式由(a)计算机体系结构和(b)strictfp标志决定。

有关详细信息,请参阅strictfp维基百科页面,其中提供了一些背景信息。