2010-03-05 12 views

Odpowiedz

22

Zakładając znaczy największy negatywny, numer non-nieskończony, brzmi poprawna, ponieważ dla liczb zmiennoprzecinkowych w 64-bit IEEE 754 floating point (czego Java uses for doubles):

  • Wielkość liczby przechowywane są w jednej części binarny rep
  • znak liczby jest przechowywany w oddzielnej części rep binarnym

Dlatego: największy reprezentowalna liczba ujemna byłaby taka sama jak największa reprezentowalna liczba dodatnia z bitem znaku obróconym w celu wskazania liczby ujemnej.

+1

Więc Java nie używa dopełnienia dwójkowego dla zmiennoprzecinkowego? –

+0

Dlaczego nie ma (-Double.MAX_VALUE - 1) równy ujemnej nieskończoności, a następnie? –

+0

Przepraszam, mój umysł jest na liczbach całkowitych ... jak wskazano, zmiennoprzecinkowy nie używa komplementu dwóch. –

15

Nie, to Double.NEGATIVE_INFINITY.

+0

Czy jest to "ważna" wartość? –

+0

Co powiesz na komendę RHSeegar? –

+2

Czy jest to prawidłowe podwójne? Tak, jest to dobrze zdefiniowana podwójna wartość IEEE 754. Double.NEGATIVE_INFINITY jest mniejszy niż -Double.MAX_VALUE i jest z definicji <= wszystkie duble (z wyjątkiem NaN, który nie ma porządku). Dlatego jest to najbardziej negatywne podwójne, które było pytaniem OP. –

Powiązane problemy