Observación interesante con BitConverter.getBytes () en marco compacto
-
13-12-2019 - |
Pregunta
Estoy tratando de convertir un valor de flotador a la matriz de bytes usando el método bitconverter.getbytes (...).Me encontré con un problema interesante.Considere el siguiente código -
float f = 0.0;
byte[] bytes = BitConverter.GetBytes(f);
for (int j = 0; j < bytes.Length; j++)
{
Trace.Write(bytes [j] + " ");
}
Por encima de la conversión devuelve la matriz de 4 bytes que estoy imprimiendo en la consola.Sin embargo, noté que a veces la salida de 4 bytes es {0 0 0 128} en lugar de {0 0 0 0}.
¿Alguna ayuda?
gracias, Omky
Solución
Como escribió aquí http://en.wikipedia.org/wiki/signed_zero
El estándar IEEE 754 para aritméticos de punto flotante (actualmente utilizado por la mayoría de las computadoras y lenguajes de programación que admiten los números de puntos flotantes) requiere tanto +0 como -0
Lo que ha encontrado es el cero negativo.