El método Buffer.readUIntBE() es una interfaz de programación de aplicaciones incorporada de la clase Buffer dentro del módulo Buffer que se utiliza para leer un número específico de valores de bytes de un búfer asignado en un desplazamiento específico.
Sintaxis:
Buffer.readUIntBE( offset, byteLength )
Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- offset: especifica el número de bytes a omitir antes de leer o simplemente indicar el índice en el búfer. El valor de offset es 0 <= offset <= Buffer.length – byteLength . Su valor por defecto es 0.
- byteLength: Especifica el número de bytes a leer. El valor de byteLength es 0 < byteLength <= 6 .
Retorno: este método devuelve un valor entero que se lee del búfer en formato Big Endian.
Los siguientes ejemplos ilustran el uso del método Buffer.readUIntBE() en Node.js:
Ejemplo 1:
// Node program to demonstrate the // Buffer.readUIntBE() Method // Allocating buffer from array const buf = Buffer.from([0x21, 0x09, 0x19, 0x98]); // Printing allocated buffer console.log(buf); // Reading data from the buffer // and printing it as a string console.log(buf.readUIntBE(0, 3).toString(16)); console.log(buf.readUIntBE(1, 3).toString(16)); console.log(buf.readUIntBE(2, 2).toString(16));
Producción:
<Buffer 21 09 19 98> 210919 91998 1998
Ejemplo 2:
// Node program to demonstrate the // Buffer.readUIntBE() Method // Allocating buffer from array const buf = Buffer.from([0x21, 0x09, 0x19, 0x98]); // Printing allocated buffer console.log(buf); // Reading data from the buffer // and printing it as a string console.log(buf.readUIntBE(0, 3).toString(16)); console.log(buf.readUIntLE(0, 3).toString(16)); console.log(buf.readUIntBE(1, 2).toString(16)); console.log(buf.readUIntLE(1, 2).toString(16)); console.log(buf.readUIntBE(2, 1).toString(16)); console.log(buf.readUIntLE(2, 1).toString(16));
Producción:
<Buffer 21 09 19 98> 210919 190921 919 1909 19 19
Ejemplo 3:
// Node program to demonstrate the // Buffer.readUIntBE() Method // Allocating buffer from array const buf = Buffer.from([0x21, 0x09, 0x19, 0x98]); // Printing allocated buffer console.log(buf); // Reading data from the buffer // and printing it as a string console.log(buf.readUIntBE(0, 4).toString(16)); console.log(buf.readUIntBE(1, 2).toString(16)); console.log(buf.readUIntBE(2, 3).toString(16)); // Wrong index is provoded to produce error console.log(buf.readUIntBE(3, 6).toString(16));
Producción:
<Buffer 21 09 19 98> 21091998 919 internal/buffer.js:49 throw new ERR_OUT_OF_RANGE(type || 'offset', ^ RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 1. Received 2 at boundsError (internal/buffer.js:49:9) at readUInt24BE (internal/buffer.js:205:5) at Buffer.readUIntBE (internal/buffer.js:148:12) . . .
Nota: El programa anterior se compilará y ejecutará usando el node index.js
comando.
Referencia: https://nodejs.org/api/buffer.html#buffer_buf_readuintbe_offset_bytelength