Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1780 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Conversion d'un nombre hexa en float

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conversion d'un nombre hexa en float

n°1913446
johnson950
Posté le 10-08-2009 à 14:19:55  profilanswer
 

Bonjour,
 
Savez vous comment faire pour convertir un nombre hexadécimal en float :
 
Exemple :
403F5C29 devrait donner 2.99
 
Pour ma part je sèche totalement.
 
Merci

mood
Publicité
Posté le 10-08-2009 à 14:19:55  profilanswer
 

n°1913448
Deamon
Posté le 10-08-2009 à 14:31:55  profilanswer
 

Si tu comprends comment fonctionne la représentation IEEE 754 tu devrais pouvoir faire l'algo facilement : http://fr.wikipedia.org/wiki/IEEE_754
 
A mon avis il faut déjà convertir l'héxa en binaire à moins qu'il n'y ait une méthode plus simple que j'ai oublié.

n°1913578
johnson950
Posté le 10-08-2009 à 16:33:43  profilanswer
 

J'ai trouvé une fonction qui me permet de passer du binaire en float :
 

Code :
  1. function bin2float ($bin) {
  2.     if((ord($bin[0])>>7)==0) $sign=1;
  3.     else $sign=-1;
  4.     if((ord($bin[0])>>6)%2==1) $exponent=1;
  5.     else $exponent=-127;
  6.     $exponent+=(ord($bin[0])%64)*2;
  7.     $exponent+=ord($bin[1])>>7;
  8.  
  9.     $base=1.0;
  10.     for($k=1;$k<8;$k++) {
  11.      $base+=((ord($bin[1])>>(7-$k))%2)*pow(0.5,$k);
  12.     }
  13.     for($k=0;$k<8;$k++) {
  14.      $base+=((ord($bin[2])>>(7-$k))%2)*pow(0.5,$k+8);
  15.     }
  16.     for($k=0;$k<8;$k++) {
  17.      $base+=((ord($bin[3])>>(7-$k))%2)*pow(0.5,$k+16);
  18.     }
  19.  
  20.     $float=(float)$sign*pow(2,$exponent)*$base;
  21.     return $float;
  22. }

n°1913601
Deamon
Posté le 10-08-2009 à 16:50:58  profilanswer
 

Alors le problème est résolu car hexa->binaire c'est comme décimal->binaire c'est très simple. :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Conversion d'un nombre hexa en float

 

Sujets relatifs
lire un nombre en notation scientifique dans un fichierRécupérer nombre dans un tableau
Conversion JPEG -> BMP en C++[VBA Excel 2007] erreur Nombre d'arguments incorrects [RESOLU]
lecture/écriture fichier texte et conversion en données numériquesConvertir un nombre de seconde depuis 1970 en date
Requete SQL sélectionnant le plus petit nombre unique[Visual C++] Problème conversion System::String ^ et structure
conversion iterator const_iteratorErreur Excel nombre de polices [RESOLU]
Plus de sujets relatifs à : Conversion d'un nombre hexa en float


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR