Por si podes tratarlo con alguna union, o bit a bit, te dejo un poco mas de datos.
Revisando tu mensaje:
Por si no queda claro lo que quiero es comprobar si una variable float tiene el el valor Nan (0xFFFFFFFF).
En realidad lo que define el NaN es que el exponente sea todos 1, y la fracción sea distinta de cero. Por lo que existe muchos valores. Tampoco importa el bit del signo.
Es decir
Si haces una OR de 0x 807F FFFF ( negado de 0xEF80 0000 que son los bits del exponente), tendrias como resultado 0xFFFF FFFF, lo negas y comprobas por 0....
Esto NO es suficiente como para determinar si es NaN o no.
Luego hay que hacer una AND de 0x007F FFFF (corresponde a la fraccion), y si es distinto de 0 entonces es una NaN, si es igual a 0 entonces es algún infinito, positivo o negativo según el signo.