Utilizzo MSVC++ e desidero utilizzare il valore speciale INFINITY nel mio codice.Infinity in MSVC++
Qual è il modello di byte o la costante da utilizzare in MSVC++ per infinito?
Perché 1.0f/0.0f sembra avere il valore 0?
#include <stdio.h>
#include <limits.h>
int main()
{
float zero = 0.0f ;
float inf = 1.0f/zero ;
printf("%f\n", inf) ; // 1.#INF00
printf("%x\n", inf) ; // why is this 0?
printf("%f\n", zero) ; // 0.000000
printf("%x\n", zero) ; // 0
}
Neat! Come funziona? Va bene assegnare qualcosa 'numeric_limits :: infinity()'? Qual è lo schema di bit per INFINITY? Come fa a sapere se il pattern è apparentemente 0 nel mio esempio? –
bobobobo
@bobobobo: quando tratti una variabile come qualcosa che non è in 'printf', non c'è molto da aspettarsi, potrebbe rompersi. Penso che peterchen lo copra. – GManNickG