Codage des float : afficher un flottant en hexa en C

Bonjour,
Je souhaite vérifier le codage d’un nombre à virgule flottante sur 32 bits
avec le programme C suivant :

#include <stdio.h>
int main()
{
        float f=-785.640625;
        unsigned int i = *(int*)&f ;    
        printf("%x\n",i) ;
}

Cependant le résultat obtenu n’est pas le bon même si c’est tout près et c’est justement cela que je ne comprends pas.
Résultat obtenu : c4446900
Résultat attendu : c4690088

Merci de votre aide

Salut,

à en croire une conversion en ligne accessible icl :

0xc4690088 donne -932.008301
0xc4446900 donne -785.640625

Ton programme donne ces deux mêmes résultats (d’après mes tests). Pourquoi dis-tu que -785.640625 devrait donner 0xc4690088 ?

En effet, je viens de refaire mes calculs … mal recopié la mantisse.
Donc le programme est correct.
Merci