Volver a la página principal
viernes 27 septiembre 2024
14

Cómo manipular datos binarios con DataView en JavaScript

DataView en JavaScript es una interfaz que permite leer y escribir datos en un buffer binario de manera flexible. Es ideal para manipular información en múltiples formatos (enteros, flotantes, etc.) desde un array de bytes, útil en el manejo de archivos binarios o transmisiones de datos.

¿Qué es DataView en JavaScript?

DataView permite acceder y manipular datos binarios almacenados en un ArrayBuffer. Ofrece una forma de leer y escribir diferentes tipos de datos (números enteros, flotantes, etc.) sin importar el formato del sistema subyacente, es decir, funciona con distintos sistemas de endianess (orden de los bytes).

Para crear una instancia de DataView, es necesario primero disponer de un ArrayBuffer, que actúa como un contenedor de datos binarios. Luego, se puede acceder a los métodos de DataView para interactuar con esos datos.

Ejemplo básico de uso de DataView

// Crear un ArrayBuffer de 16 bytes
let buffer = new ArrayBuffer(16);

// Crear un DataView asociado a ese buffer
let view = new DataView(buffer);

// Escribir un entero de 32 bits en la posición 0
view.setInt32(0, 123456);

// Leer el valor almacenado en la posición 0
console.log(view.getInt32(0)); // 123456

Métodos principales de DataView

  • setInt8(), setUint8(): Escribir enteros de 8 bits con y sin signo.
  • setInt16(), setUint16(): Escribir enteros de 16 bits con y sin signo.
  • setInt32(), setUint32(): Escribir enteros de 32 bits con y sin signo.
  • setFloat32(), setFloat64(): Escribir valores en punto flotante de 32 y 64 bits.
  • getInt8(), getUint8(): Leer enteros de 8 bits.
  • getInt16(), getUint16(): Leer enteros de 16 bits.
  • getInt32(), getUint32(): Leer enteros de 32 bits.
  • getFloat32(), getFloat64(): Leer valores en punto flotante.

Ejemplo de escritura y lectura

let buffer = new ArrayBuffer(8);
let view = new DataView(buffer);

// Escribir un flotante de 64 bits en la posición 0
view.setFloat64(0, Math.PI);

// Leer el flotante almacenado
console.log(view.getFloat64(0)); // 3.141592653589793

Referencia oficial

Para más detalles sobre DataView y sus métodos, puedes visitar la documentación oficial de MDN.

Etiquetas:
javascript
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer