Je prends un flottant en entrée, puis je renvoie sa représentation équivalente en notation scientifique de base 2. C'est en IEEE 32 bits avec: 31 bits de signe, 23-30 exposant (avec 127 offset), 0-22 mantisse (avec 1 implicite).Algorithme ou code pour la notation scientifique float to base 2 (IEEE 32 bits) en C++?
Une des conditions que je ne suis pas exactement sûr que le sens de "Votre mantisse devrait avoir l'avance implicite 1 pré-ajouté."
Tout ce que j'ai vraiment appris est de décomposer le flottant en ses parties décimales et fractionnaires, et d'obtenir séparément leurs représentations binaires. Comme je ne suis pas sûr de savoir comment faire cela ... Je ne peux pas vraiment le coder. J'apprécierais des conseils ou des informations sur une sorte d'algorithme pour le faire, ou le code lui-même. Merci.
Sample:
Input: -40.1
Output: -1.01000000110011001100110 E101
Input: 13.5
Output: 1.10110000000000000000000 E11
EDIT: 127 décalage moyen de l'excès de droite notation 127? Mon livre a seulement l'excès 128, mais je ne connais pas la différence de toute façon ...
Il y a une très bonne explication de la façon dont tout cela fonctionne à wikipedia: http://en.wikipedia.org/wiki/IEEE_754-1985 et http://en.wikipedia.org/wiki/Single_precision. – jkerian
Vous pourriez trouver cet article utile: http://www.exploringbinary.com/displaying-ieee-doubles-in-binary-scientific-notation/. J'y montre comment faire cela en C pour les doubles. –