Conversion float-binaire
misterbool
Messages postés
1
Statut
Membre
-
maryem281 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
maryem281 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,j'aimerai avoir de l' aide pour convertir un float en binaire en langage C.Existe-t-il une fonction ki permet de le faire dirctement.
Configuration: Windows XP Firefox 2.0.0.4
2 réponses
-
Salut,
Je pense qu'il veut afficher les 0 et 1 qui composent un float.
J'ai une fonction qui fait ça pour les float 32 bits, j'en avait besoin ya quelques temps, autant en faire profiter.
/* Pour afficher en binaire la valeur de nom "name" ayant pour valeur "value" constituée de "taille" bits en partant des bits de poids faible */ void dump_bin(const char* name, unsigned int value, int taille) { int i; printf("%s: ", name); for(i = taille-1; i>=0; i--) { printf("%d", (value >> i) & 1); } printf("\n"); } void float2bin(float f) { unsigned int i, mantisse, signe, exposant; //On récupère f dans un entier sans le convertir en entier i = *(int *) &f; //Le signe est le bit de poids fort signe = i >> 31; //L'exposant c'est les huit bits suivants de poids fort exposant = (i >> 23) & 0xff; //Les 23 bits restants c'est la mantisse mantisse = i & 0x007fffff; dump_bin("signe", signe, 1); dump_bin("mantisse", mantisse, 23); dump_bin("exposant", exposant, 8); }
Exemple:int main() { float f=1.0; float2bin(f); return 0; }
Affichera:signe: 0 mantisse: 00000000000000000000000 exposant: 01111111
-