Я попробовал все свои обычные приемы для обнаружения нечетных чисел (NaN, QNaN и т. Д.), И я не могу обнаружить -1. # IND.Любая помощь будет принята с благодарностью.
Попробуйте это:
http://www.johndcook.com/IEEE_exceptions_in_cpp.html
union _IEEESingle { float Float; struct { unsigned int Frac : 23; unsigned int Exp : 8; unsigned int Sign : 1; } IEEE; }; bool isQnan(float in) { return(reinterpret_cast<_IEEESingle*>(&in)->IEEE.Exp == (1u << 8)-1 && reinterpret_cast<_IEEESingle*>(&in)->IEEE.Frac); }
Вы пытались сравнить число с самим собой:
if ( x != x ) assert(!"nan");
или просто
assert(x==x);
Каковы ваши обычные трюки?
Кроме того, нечетные числа 1, 3,5, ..., как и в, противоположность четного.Вы говорите о NaN, я полагаю.