Jakie są stałe INFINITY w Javie?

Niedawno natknąłem się na stałe w klasach opakowujących typu pierwotnego, takich jakDouble.POSITIVE_INFINITY iDouble.NEGATIVE_INFINITY. W interfejsie API definiuje pierwsze jako:

Stałe utrzymywanie dodatniej nieskończoności typu podwójnego. Jest równy wartości zwróconej przez Double.longBitsToDouble (0x7ff0000000000000L).

Inni mają definicje na tych samych zasadach.

To, z czym mam problem, to zrozumienieco te stałe są w rzeczywistości. Tak naprawdę nie mogąbyć lubprzedstawiać nieskończoność dodatnia / ujemna, ponieważ system jest z natury skończony. Czy jest to tylko dowolne ustawienie bitów, które twórcy Javy uznali za nieskończoność? Czy może mają one jakąś specjalną wartość? Jeśli tojest tylko dowolny ciąg bitów interpretowany jakodouble, czy jest tam jakaś normalna liczba, gdy jest interpretowana jakodouble wróciPOSITIVE_INFINITY zamiast jakiejkolwiek faktycznie oczekiwanej wartości?

Wybacz mi, jeśli odpowiedź na to jest oczywista, biorąc pod uwagęDouble.longBitsToDouble(0x7ff0000000000000L) część API. Prawdę mówiąc, opis ten jest dla mnie dość tajemniczy i nie będę udawać, że rozumiem, co naprawdę oznaczają lub reprezentują wartości szesnastkowe.

questionAnswers(3)

yourAnswerToTheQuestion