【发布时间】:2012-10-30 07:59:54
【问题描述】:
我最近刚刚遇到了基本类型包装类中的常量,例如Double.POSITIVE_INFINITY 和Double.NEGATIVE_INFINITY。在 API 中,它将第一个定义为:
一个保持双精度正无穷大的常数。它等于 Double.longBitsToDouble(0x7ff0000000000000L) 返回的值。
其他人也有类似的定义。
我遇到的问题是理解这些常量实际上是什么。它们实际上不能成为或表示正/负无穷大,因为系统本质上是有限的。 Java创建者认为它只是定义无限概念的任意位设置吗?还是这些实际上有某种特殊价值?如果它是只是解释为double的任意位字符串,那么是否有一些正常的数字,当解释为double时将返回POSITIVE_INFINITY而不是任何值实际预期?
鉴于 API 的 Double.longBitsToDouble(0x7ff0000000000000L) 部分,如果这个问题的答案很明显,请原谅我。老实说,这种描述对我来说非常神秘,我不会假装理解十六进制值的实际含义或代表什么。
【问题讨论】:
标签: java constants bits infinity