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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top