Question

J'essaie de convertir une valeur de flotteur en une matrice d'octet à l'aide de la méthode BitConverter.getBytes (...).Je suis tombé sur un problème intéressant.Considérons le code suivant -

float f = 0.0;
byte[] bytes = BitConverter.GetBytes(f);
for (int j = 0; j < bytes.Length; j++)
{
     Trace.Write(bytes [j] + " ");
} 

Tableau de conversion au-dessus de 4 octets que je suis imprimé sur la console.Cependant, j'ai remarqué que parfois la sortie de 4 octets est {0 0 0 128} au lieu de {0 0 0 0}.

Toute aide?

merci, Omky

Était-ce utile?

La solution

Comme écrit ici http://en.wikipedia.org/wiki/signed_zero

La norme IEEE 754 pour l'arithmétique de point flottant (actuellement utilisée par la plupart des ordinateurs et des langages de programmation prenant en charge les numéros de points flottants) nécessite à la fois +0 et -0

Ce que vous avez trouvé est le zéro négatif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top