El método Buffer.readUInt16BE() es una interfaz de programación de aplicaciones incorporada de clase Buffer dentro del módulo Buffer que se utiliza para leer un valor de 16 bits de un búfer asignado en un desplazamiento especificado.
Sintaxis:
Buffer.readUInt16BE( offset )
Parámetros: este método acepta el desplazamiento de un solo parámetro que especifica el número de bytes que se omitirán antes de leer o simplemente indicar el índice en el búfer. El valor del búfer es 0 <= desplazamiento <= Buffer.length – 2 . Su valor por defecto es 0.
Valor devuelto: este método devuelve un valor entero de 16 bits sin signo que se lee del búfer en formato big endian (Buffer.readUInt16LE() lee 16 bits en formato little endian).
Los siguientes ejemplos ilustran el uso del método Buffer.readUInt16BE() en Node.js:
Ejemplo 1:
// Node.js program to demonstrate the // Buffer.readUInt16BE() method // Allocating buffer from array const buf = Buffer.from([0x21, 0x09, 0x19, 0x98]); // Printing allocated buffer console.log(buf); // Reading 16bits data from the buffer // and printing it as a string console.log(buf.readUInt16BE(0).toString(16)); console.log(buf.readUInt16BE(1).toString(16)); console.log(buf.readUInt16BE(2).toString(16));
Producción:
<Buffer 21 09 19 98> 2109 919 1998
Ejemplo 2:
// Node.js program to demonstrate the // Buffer.readUInt16BE() method // Allocating buffer from array const buf = Buffer.from([0x21, 0x09, 0x19, 0x98]); // Printing allocated buffer console.log(buf); // Reading 16bits data from the buffer // and printing it as a string console.log(buf.readUInt16BE(0).toString(16)); console.log(buf.readUInt16LE(0).toString(16)); console.log(buf.readUInt16BE(1).toString(16)); console.log(buf.readUInt16LE(1).toString(16)); console.log(buf.readUInt16BE(2).toString(16)); console.log(buf.readUInt16LE(2).toString(16));
Producción:
<Buffer 21 09 19 98> 2109 921 919 1909 1998 9819
Ejemplo 3:
// Node.js program to demonstrate the // Buffer.readUInt16BE() method // Allocating buffer from array const buf = Buffer.from([0x21, 0x09, 0x19, 0x98]); // Printing allocated buffer console.log(buf); // Reading 16bits data from the buffer // and printing it as a string console.log(buf.readUInt16BE(0).toString(16)); console.log(buf.readUInt16BE(1).toString(16)); console.log(buf.readUInt16BE(2).toString(16)); // Wrong index is provided to produce error console.log(buf.readUInt16BE(3).toString(16));
Producción:
<Buffer 21 09 19 98> 2109 919 1998 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 <= 2. Received 3 at boundsError (internal/buffer.js:49:9) at Buffer.readUInt16BE (internal/buffer.js:215:5) . . .
Nota: El programa anterior se compilará y ejecutará usando el node index.js
comando.
Referencia: https://nodejs.org/api/buffer.html#buffer_buf_readuint16be_offset