float f = (float)\'a\';
if(f < 0){
}
else if(f == 0){
}
else if(f > 0){
}
else{
printf(\"NaN\\n\");
To produce a nan, there are a few ways:
1) generate it manually (read ieee754 to set up the bits properly)
2) use a macro. GCC exposes a macro NAN. It's defined in math.h
The general way to check for a nan is to check if (f == f) (which should fail for nan values)
For nan, the exponent bits in the float representation should all be set to 1 (float consists of a signed bit, a set of exponent bits and a set of mantissa bits)