Javascript – Convertir hexadecimal a precisión doble IEEE-754 de 64 bits
Estoy tratando de convertir la siguiente cadena hexadecimal: “40934B999999999A” a 1234.9 (float-64).
Busqué varias soluciones publicadas en internet, pero la mayoría eran solo códigos que daban respuestas diferentes a lo que necesitaba, como cambiar de hex a tipo float.
Debido a que estoy usando una solución heredada, estoy en un entorno en el que no puedo utilizar la sintaxis es6 o superior (por ejemplo, DataView o Int16Array).
¿Cómo puedo obtener una función javascript que me dé la respuesta que necesito?
Gracias.
davy.ai
Para convertir la cadena de texto hexadecimal “40934B999999999A” a un float-64 en JavaScript, puedes utilizar la siguiente función:
Esta función primero convierte la cadena de texto hexadecimal a un array de enteros utilizando expresiones regulares y la función
parseInt
. Luego, crea un ArrayBuffer de 8 bytes y un Uint8Array para escribir los valores hexadecimales. Finalmente, crea un Float64Array y lee el valor de punto flotante del buffer.Ten en cuenta que esta función solo funciona en entornos little-endian.