Representation binaire float, double et decimal

Résolu
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 - 10 juil. 2008 à 11:16
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 - 22 juil. 2008 à 10:50
Salut!

Quelqu'un a une idée de comment on fait pour obtenir la représentation binaire d'un nombre de type float ou double ou decimal en binaire en c# ? :/

Merci de vos réponse

A+
A voir également:

10 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
10 juil. 2008 à 20:50
Salut,
en effet, j'ai zappé une partie de la question

Tu peux, utiliser la classe BitConverter, et plus particulierement la méthodeDoubleToInt64Bits() , Puis  il ne te reste plus qu'a utiliser la méthode spécifiée dans mon premier post, et le tour est joué
Mx
MVP C# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
10 juil. 2008 à 13:31
Salut,

La méthode Convert.ToString() a une surcharge Convert.ToString(int, int); qui prend en entrée l'entier a convertir et la base.
Ainsi, Convert.ToString(tonEntier, 2) converti ton entier en base 2, donc en binaire.

Tu auras le resultat dans une chaine de caractere

Mx
MVP C# 
0
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
10 juil. 2008 à 14:36
Merci MorpionMx mais ca ne marche pas avec les ulong par exemple. Ca ne compile pas.

A+
0
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
10 juil. 2008 à 14:37
De meme que pour les float, double et decimal...
0

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

Posez votre question
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
11 juil. 2008 à 10:13
Ok, je vais essayer ça alors et te tiens au courant si ça marche!
Merci.
0
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
11 juil. 2008 à 11:21
En fait, il me reste un petit problème.

Si je veux avoir la représentation de 5.0 par exemple. Je fais :

Int64 buffer = BitConverter.DoubleToInt64Bits((double) input);
binaryString = Convert.ToString(buffer, 2);

Et j'obtiens donc la chaine suivante:
100000000010100000000000000000000000000000000000000000000000000

soit 63 bits.

Je suppose donc que le bit manquant se rajoute à gauche et vaut 0 logiquement.

Ma question est: quels sont les bits pour la mantisse ? Ceux pour l'exposant? En effet il faut que je les redécode par par la suite...

Merci encore :)
0
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
11 juil. 2008 à 11:23
Je précise qu'il faut que je les redécode "à la main" dans un programme c++.

Re merci
0
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
16 juil. 2008 à 11:01
Un petit up :/
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
17 juil. 2008 à 20:11
Salut,

Je crains de ne pas pouvoir t'aider sans me pencher plus sur la question, mais je manque un peu de temps
Peut-etre en regardant, via reflector, comment agissent les méthodes DoubleIntTo64Bits et In64BitsToDouble (qui fait la conversion inverse) ?

Mx
MVP C# 
0
renyone Messages postés 71 Date d'inscription vendredi 9 mars 2007 Statut Membre Dernière intervention 12 avril 2010 3
22 juil. 2008 à 10:50
J'ai un peu oublié de revenir par ici.
Ta méthode marche effectivement bien. Je m'étais juste trompé dans le décodage de la chaine de bits. Les puissances pour le calcul de la mantisse sont... négatifs et non positifs comme je m'obstinais à le faire. :D
Merci
0
Rejoignez-nous