Tengo algunos flotantes de precisión simple y doble en los que quiero escribir y leer desde un byte []. ¿Hay algo en .Net que pueda usar para convertirlas a sus representaciones IEEE 754 de 32 y 64 bits?Cómo obtener la representación binaria IEEE 754 de un flotador en C#
16
A
Respuesta
30
.NET Single y Double ya están en formato IEEE-754. Puede usar BitConverter.ToSingle() y ToDouble() para convertir byte [] a coma flotante, GetBytes() para ir al revés.
5
Si no desea asignar nuevas matrices de todo el tiempo (que es lo que hace GetBytes
), puede utilizar unsafe
código para escribir directamente en una memoria intermedia:
static void Main()
{
byte[] data = new byte[20];
GetBytes(0, data, 0);
GetBytes(123.45F, data, 4);
GetBytes(123.45D, data, 8);
}
static unsafe void GetBytes(float value, byte[] buffer, int offset)
{
fixed (byte* ptr = &buffer[offset])
{
float* typed = (float*)ptr;
*typed = value;
}
}
static unsafe void GetBytes(double value, byte[] buffer, int offset)
{
fixed (byte* ptr = &buffer[offset])
{
double* typed = (double*)ptr;
*typed = value;
}
}
Cuestiones relacionadas
- 1. IEEE 754 del flotador a hexadecimal con c - printf
- 2. ¿Cómo puedo convertir cuatro caracteres en un flotador IEEE-754 de 32 bits en Perl?
- 3. dobles - IEEE 754 alternativas
- 4. Cómo restar números IEEE 754?
- 5. Algoritmo de compresión para datos IEEE-754
- 6. Representación de flotador en C
- 7. Algoritmo para convertir un doble IEEE 754 en una cadena?
- 8. Representación textual exacta de un "doble" IEEE
- 9. ¿qué idiomas tienen IEEE 754 correcto?
- 10. Encontrar min/max de un flotador/doble que tiene la misma representación interna
- 11. Representación binaria de un número en C
- 12. ¿Por qué el estándar IEEE 754 usa un sesgo 127?
- 13. ¿Visualiza la representación binaria de un número en C?
- 14. ¿Alguna CPU del mundo real no usa IEEE 754?
- 15. Convierta una cadena con una representación hexadecimal de un doble IEEE-754 en una variable numérica de JavaScript
- 16. Cálculos en coma flotante IEEE-754, igualdad y estrechamiento
- 17. Java IEEE 64-bit 754 double, valores para evitar
- 18. Cómo comprobar si el compilador de C++ utiliza el estándar de punto flotante IEEE 754
- 19. ¿qué idiomas exponen IEEE 754 trampas para el desarrollador?
- 20. Representación binaria de .NET Decimal
- 21. representación binaria compacta de json
- 22. Cómo ver la representación binaria de la variable
- 23. convertir cadena de texto a representación hexadecimal o representación binaria
- 24. Cuál es la representación binaria de un valor booleano en C#
- 25. Cómo calcular la raíz cuadrada de un flotador en C#
- 26. ¿Cómo obtener representación binaria del número de coma flotante en PHP?
- 27. IEEE-754 Doble (coma flotante de 64 bits) vs. Largo (Entero de 64 bits) Revisited
- 28. Encontrar el número entero más pequeño que no puede ser representado como un 754 IEEE-flotante de 32 bits
- 29. ¿Cómo puedo obtener/configurar bits individuales en un flotador?
- 30. ¿Cómo comprobar si la representación binaria de un entero es un palíndromo?
¿Cómo podemos hacer esto sin usar GetBytes() me refiero a usar forloops –
@SriramSatti ver mi respuesta –