A voir également:
- Convertir float en binaire
- Binaire - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir epub en kindle - Guide
- Convertir kindle en epub - Guide
- Convertir audio en texte word - Guide
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.
Exemple:
Affichera:
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
je récupére toujous 0 dans i : //On récupère f dans un entier sans le convertir en entier
i = *(int *) &f;
Du coup j'arrive pas à calcuuler signer, mantisse et exposant d'un float
t'as une idée sur un tel probleme ? et comment le résoudre ?
MERCI