J'utilise MSVC++, et je veux utiliser la valeur spéciale INFINITY dans mon code.Infinity dans MSVC++
Quel est le modèle d'octets ou la constante à utiliser dans MSVC++ pour l'infini?
Pourquoi 1.0f/0.0f semble avoir la valeur 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! Comment cela marche-t-il? Est-ce correct d'attribuer quelque chose 'numeric_limits :: infinity()'? Quel est le modèle de bits pour INFINITY? Comment sait-il si le motif est apparemment 0 dans mon exemple? –
bobobobo
@bobobobo: Lorsque vous traitez une variable comme quelque chose qui n'est pas dans 'printf', il n'y a pas grand chose à espérer, cela pourrait casser. Je pense que peterchen le couvre. – GManNickG