我最近刚刚遇到了原始类型包装类中的常量,比如Double.POSITIVE_INFINITY
和Double.NEGATIVE_INFINITY
。在 API 中,它将第一个定义为:
一个保持 double 类型的正无穷大的常数。它等于 Double.longBitsToDouble(0x7ff0000000000000L) 返回的值。
其他人也有同样的定义。
我遇到的麻烦是了解这些常量实际上是什么。它们实际上不能是或代表正/负无穷大,因为系统本质上是有限的。Java创建者认为它只是定义无限概念的任意位设置吗?还是这些实际上有某种特殊价值?如果它只是解释为 a 的任意位串double
,那么当解释为 a 时是否有一些正常的数字double
将返回POSITIVE_INFINITY
而不是实际预期的任何值?
Double.longBitsToDouble(0x7ff0000000000000L)
鉴于API 的一部分,如果这个问题的答案是显而易见的,请原谅我。老实说,这种描述对我来说非常神秘,我不会假装理解十六进制值的实际含义或代表什么。