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

Résolu
salsou34 Messages postés 9 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 29 mai 2007 - 24 mai 2007 à 11:43
salsou34 Messages postés 9 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 29 mai 2007 - 24 mai 2007 à 18:42
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

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
24 mai 2007 à 18:02
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));
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
24 mai 2007 à 12:09
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 !
0
salsou34 Messages postés 9 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 29 mai 2007
24 mai 2007 à 14:49
Salut,
C'est gentil de proposer une solution, hélas je viens de l'essayer ça ne fonctionne pas.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
24 mai 2007 à 15:33
Quel message d'erreur ?
A la compilation ou à l'execution ?

Autre tentative :

  void * pointeur;
  int result;
  pointeur = (void *) &TonFloat;
  result = *pointeur;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salsou34 Messages postés 9 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 29 mai 2007
24 mai 2007 à 18:42
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.
0
Rejoignez-nous