Conversion float-binaire

Fermé
misterbool Messages postés 1 Date d'inscription lundi 3 décembre 2007 Statut Membre Dernière intervention 3 décembre 2007 - 3 déc. 2007 à 15:50
maryem281 Messages postés 1 Date d'inscription mardi 8 août 2017 Statut Membre Dernière intervention 8 août 2017 - 8 août 2017 à 17:04
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.
A voir également:

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
3 déc. 2007 à 16:33
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
11
maryem281 Messages postés 1 Date d'inscription mardi 8 août 2017 Statut Membre Dernière intervention 8 août 2017
8 août 2017 à 17:04
bonjour ,
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
0
Bonjour

Qu'entends-tu par convertir un float en binaire ? Un float, c'est du binaire.
-2