Recuperer les 4 octets d un float en hexadecimal ou en binaire

Résolu
Signaler
Messages postés
9
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
29 mai 2007
-
Messages postés
9
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
29 mai 2007
-
Bonjour,
Afin de faire un crc32 j'aurai besoin de recuperer les octets de 6 floattants, je n'ai trouvé des solutions de crc que sur des int, et je ne peux pas me permettre de me passer des chiffres aprés la virgule.
Merci.

5 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Nonon, ya pas de pb, la syntaxe doit marcher:

float real;
int value = *(int*)&float;

ou dans le pire de cas:
float real;
int value;

memcpy((void*)&value,(const void*)&real, sizeof(int));
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,


Heu bah pour mettre un float dans un int, on peut peut être faire un truc du style (Non testé) :


  int * pointeur;

  int result;

  pointeur = (int *) &TonFloat;

  result = *pointeur;

Je récupère l'adresse du float, puis je met le contenu situé à cette adresse dans le int.

Je vais me faire démonté je sens !
Messages postés
9
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
29 mai 2007

Salut,
C'est gentil de proposer une solution, hélas je viens de l'essayer ça ne fonctionne pas.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Quel message d'erreur ?
A la compilation ou à l'execution ?

Autre tentative :

  void * pointeur;
  int result;
  pointeur = (void *) &TonFloat;
  result = *pointeur;
Messages postés
9
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
29 mai 2007

Salut les gars,
Merci a luthor j'ai testé la solution :
float real;
int value;

memcpy((void*)&value,(const void*)&real, sizeof(int));

Ca marche de la bombe atomique, Merci mille fois.