Проблемы приведения NAN с плавающей запятой к int

Игнорируя, зачем мне это нужно,стандарт 754 IEEE fp не определяет поведение для следующего:

float h = NAN;
printf("%x %d\n", (int)h, (int)h);

Gives: 80000000 -2147483648

По сути, независимо от того, какое значение NAN я даю, он выводит 80000000 (hex )или -2147483648 (dec ). Есть ли причина для этого и/или это правильное поведение? Если да, то почему?

Способ, которым я задаю разные значения NaN, описан здесь.: Как я могу вручную установить битовое значение числа с плавающей запятой, равное NaN?

Итак, существуют ли случаи, когда полезная нагрузка NaN влияет на вывод приведения?

Спасибо!

12
задан Community 23 May 2017 в 11:51
поделиться