Путаница с NaN в Java

int i = 0, j = 0;
double nan1 = (double)0/0;
double nan2 = (double)0/0;
double nan3 = (double)i/j;
System.out.println(Double.doubleToRawLongBits(nan1) == Double.doubleToRawLongBits(nan2));
System.out.println(Double.doubleToRawLongBits(nan1) == Double.doubleToRawLongBits((double)0/0));
System.out.println(Double.doubleToRawLongBits(nan3) == Double.doubleToRawLongBits(nan2));

вывод:

true
true
false

Пожалуйста, помогите мне, как получился вывод trueдля первых двух и falseдля последнего. Подскажите, пожалуйста, какова реальная работа метода Double.doubleToRawLongBits().

14
задан Mysticial 13 June 2012 в 05:35
поделиться