Каковы на самом деле константы INFINITY в Java?
Я только недавно столкнулся с константами в классах-оболочках примитивного типа, таких какDouble.POSITIVE_INFINITY
а такжеDouble.NEGATIVE_INFINITY
, В API он определяет первый как:
Константа, содержащая положительную бесконечность типа double. Это равно значению, возвращенному Double.longBitsToDouble (0x7ff0000000000000L).
Другие имеют определения в том же духе.
Что я'у меня проблемы с пониманиемкакие эти константы на самом деле есть. Они могут'т на самом делебыть или жепредставлять положительные / отрицательные бесконечности, потому что система по своей природе конечна. Является ли это просто произвольным набором битов, которые, как считали создатели Java, определяют концепцию бесконечности? Или они действительно имеют какую-то особую ценность? Если оноявляется просто произвольная строка битов, интерпретируемая какdouble
то есть какое-то нормальное число там, которое, когда интерпретируется какdouble
вернусьPOSITIVE_INFINITY
вместо какого значения на самом деле ожидается?
Простите, если ответ на этот вопрос очевиден, учитываяDouble.longBitsToDouble(0x7ff0000000000000L)
часть API. По правде говоря, это описание довольно загадочно для меня, и я выигралпритворяется, что понимает, что на самом деле означают или представляют шестнадцатеричные значения.