Convertir un float en binaire

tiess81 Messages postés 12 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 24 mars 2009 - 6 avril 2006 à 18:06
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 7 avril 2006 à 09:36
Bonjour je suis en train de concevoir un interpreteur avec flex et
bison qui doit me permettre de faire des calculs arithmétique dans
toutes les bases(2,8,10).

les calcul se feront avec des entier ou des réels.

alors j'ai besoin de pouvoir convertir un float (double) dans un base quelconque.

du genre: 3.5 (base 10) --> 11.1 (base 2).

Merci de m'aider...

3 réponses

ben92600 Messages postés 56 Date d'inscription dimanche 13 novembre 2005 Statut Membre Dernière intervention 11 juillet 2006
6 avril 2006 à 18:29
ya une solution un peu idote et limite c est de multiplier ton nombre
et de le mettre dans un int ou un long la virgule est juste une
delimitation ;)

mais cette idee est tres limiter notamment pour les double enfin je pense
0
cs_stenka Messages postés 14 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 30 octobre 2006
6 avril 2006 à 22:22
S'il faut créer soi même les outils de conversion, je trouve qu'une bonne base de travail serait de partir de la valeur hexadécimale des nombres à traiter. Chaque caractère hexa doit simplement être remplacé par l'octet correspondant. ( de 0000 pour 0 à 1111 pour F ) Je n'ai jamais approfondi la question mais je suppose qu'à condition de conserver la virgule, ça fonctionne aussi pour les nombres à virgule flottante.

sten
ka
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
7 avril 2006 à 09:36
Je comprend pas bien perso, car ca:

3.5 (base 10) --> 11.1 (base 2). <= c'est faux.

Ca dépend du type de ta donnée. En flottant, ca sera bcp plus compliqué.
0
Rejoignez-nous