Comment puis-je enregistrer un nombre à virgule flottante dans les 2 octets?

Oui, je suis conscient de la norme IEEE-754 demi-précision norme, et oui je suis conscient du travail accompli dans le domaine. Mettez tout simplement, j'essaie de sauver un simple nombre à virgule flottante (comme 52.1, ou 1.25) en seulement 2 octets.

J'ai essayé certaines implémentations dans Java et dans C# mais ils ruinent la valeur d'entrée par le décodage d'un nombre différent. Vous nourrissez dans 32.1 et après coder-décoder vous obtenez 32.0985.

Est-il possible que je peux stocker des nombres à virgule flottante en seulement 16-bits sans ruiner la valeur d'entrée?

Merci beaucoup.

  • Binaire floatingpoints ne pouvez pas encoder 32.1
  • Quel est l'éventail des numéros de avez-vous besoin de coder, et combien de chiffres significatifs ont-ils? Envisager virgule fixe ou flottante points.
  • Vous pouvez les stocker comme un unsigned short, avec quelques bits utilisés pour l'exponentielle de la partie? Vous pouvez ensuite convertir manuellement de retour de ce format régulier de simple précision float.
  • Ce CodeInChaos dit mot pour mot...
  • Qui ne permettent pas de résoudre le problème de la représentation.
  • Vous devez être plus précis avec votre énoncé du problème. Deux octets peut représenter au plus 65536 différentes valeurs à virgule flottante. Ceux qui sont celles que vous voulez? Pire des cas, vous pouvez avoir un tableau de "la 65536 valeurs à virgule flottante-je me soucier de" et de rendre les deux octets de la valeur d'une recherche.

InformationsquelleAutor Robinicks | 2012-05-02