我已经尝试了所有检测奇数的常规技巧(NaN,QNaN等),我似乎无法检测到-1。#IND。任何帮助将不胜感激。
答案 0 :(得分:3)
答案 1 :(得分:0)
您是否尝试将数字与自身进行比较:
if ( x != x )
assert(!"nan");
或只是
assert(x==x);
你的常规技巧是什么?
另外,奇数是1,3,5,......,与偶数相反。你在谈论NaN我的假设。
答案 2 :(得分:0)
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);
}