"总体幅度"的含义一个数字

时间:2015-08-03 15:55:58

标签: java numbers

我被"整体规模"的意义所困扰。在Java语言规范中:

  

扩展原始转换不会丢失有关数值整体大小的信息。

是"数量级",或"绝对值"?或其他什么?

2 个答案:

答案 0 :(得分:3)

来自维基百科的文章Magnitude (mathematics)

  

在数学中,幅度是数学对象的大小,数学对象是一种属性,通过该属性可以将对象比较大于或小于同类对象。

简单来说,32767的幅度是32767.幅度相当于数字的值。

在JLS规范中,我认为他们使用幅度来表示数字中的位数。 32767是可以放入有符号16位字段的最大整数。如果将32767移动到小于15位的位字段,则该数字不再是32767。这被称为缩小范围。如果将32767移动到超过15位(或16位,有符号)的位字段,则将保留32767的值。这被称为扩大。

一个数量级是从数字中加上或减去一个数字。例如,使用基数为10的整数,32767比3276高出一个数量级.3276比327高出一个数量级。

答案 1 :(得分:1)

好的,这是另一种正式定义的尝试。

如果f(x)是一个扩展转换,那么对于每个x <= yf(x) <= f(y)。换句话说,扩展转换会保留值的部分排序。

这不是丢失有关总体幅度的信息可能意味着什么。

此框架中的精度损失意味着某些x < yf(x) = f(y)

此定义的唯一问题是(float)Double.MAX_VALUE溢出导致Float.POSITIVE_INFINITY,它在技术上符合上述标准,但不应该真正算作不丢失有关总体幅度的信息。