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)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…