Heim  >  Artikel  >  Web-Frontend  >  NodeJS-Puffer zu Nummer

NodeJS-Puffer zu Nummer

WBOY
WBOYOriginal
2023-05-17 12:12:37791Durchsuche

Nodejs ist eine sehr leistungsstarke Back-End-JavaScript-Lösung, die häufig in der serverseitigen Programmierung verwendet wird. Der Puffertyp ist auch eine der wichtigen Funktionen von Nodejs.

In Nodejs wird das Pufferobjekt hauptsächlich zum Verarbeiten von Binärdaten verwendet. Daher wird es normalerweise in Szenarien wie Netzwerkkommunikation und Datenpersistenz (z. B. Lesen und Schreiben von Dateien) verwendet.

Bei der tatsächlichen Arbeit stoßen wir häufig auf Szenarien, in denen wir Daten vom Puffertyp in JavaScript in einen numerischen Typ konvertieren müssen. In diesem Artikel wird daher die Lösung für dieses Problem vorgestellt.

  1. Konvertieren Sie Buffer in eine Dezimalzahl.

In Nodejs ist das Konvertieren von Binärdaten in eine Dezimalzahl sehr einfach. Verwenden Sie einfach die readInt-Methode der Buffer-Klasse. Zu den von der readInt-Methode unterstützten Parametern gehören die Anzahl der Bytes, der Offset und ob vorzeichenlose Ganzzahlen verwendet werden sollen.

Zum Beispiel können Sie für 8-Byte-Pufferdaten die folgende Anweisung verwenden, um sie in eine Dezimalzahl umzuwandeln:

let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); 
let number = buffer.readIntBE(0, 8); 
console.log(number); //输出为78187493520

Im obigen Code wird die Buffer.from-Methode verwendet, um ein Buffer-Objekt mit a zu erstellen Länge von 8 Byte. Verwenden Sie dann die Methode readIntBE, um es in eine Dezimalzahl zu verarbeiten.

  1. Puffer in Hexadezimalzahlen verarbeiten

Zusätzlich zur Verarbeitung von Pufferdaten in Dezimalzahlen können Sie diese auch in Hexadezimalzahlen verarbeiten. Dies kann durch die toString-Methode erreicht werden, die mit Nodejs geliefert wird.

let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); 
let hex = buffer.toString('hex');
console.log(hex); // 输出为:1234567890abcdef
  1. Umgang mit Big-Endian- und Little-Endian-Reihenfolge

Es ist zu beachten, dass bei der Verarbeitung von Pufferobjekten als Zahlen die Bytereihenfolge der Daten berücksichtigt werden muss. Normalerweise müssen wir die Bytereihenfolge der Daten basierend auf der Quelle und den Nutzungsanforderungen der Daten bestimmen.

In Nodejs können Sie die gängigen BE- und LE-Methoden verwenden, um die Bytereihenfolge zu bestimmen. BE bezieht sich auf die Big-Endian-Reihenfolge und LE bezieht sich auf die Little-Endian-Reihenfolge.

BE: Speichern Sie Daten in der Reihenfolge vom High-Byte zum Low-Byte, d. h. High-Byte zuerst und Low-Byte zuletzt.
LE: Speichern Sie Daten in der Reihenfolge vom Low-Byte zum High-Byte, d. h. Low-Byte zuerst und High-Byte zuletzt.

Für 2-Byte-Pufferdaten ist beispielsweise einer BE und einer LE:

let BE_Buffer = Buffer.from([0x12, 0x34]);
let LE_Buffer = Buffer.from([0x34, 0x12]);

console.log(BE_Buffer.readIntBE(0, 2)); // 输出为: 4660
console.log(BE_Buffer.readUIntBE(0, 2)); // 输出为: 4660

console.log(LE_Buffer.readIntLE(0, 2)); // 输出为: 4660
console.log(LE_Buffer.readUIntLE(0, 2)); // 输出为: 4660
  1. Zusammenfassung

Das Konvertieren von Puffertypdaten in einen numerischen Typ in JavaScript ist eine der am häufigsten verwendeten Operationen in Nodejs . Durch den Einsatz verschiedener Dekodierungsmethoden können die Bytereihenfolge, Big- und Small-Endianness und andere Attribute der Daten korrekt identifiziert und in Zahlen umgewandelt werden, wodurch die Korrektheit der Daten beim Übertragen, Speichern, Lesen usw. sichergestellt wird.

Die oben beschriebene Methode zum Konvertieren des Puffertyps in einen numerischen Typ in Nodejs wird Ihnen hoffentlich weiterhelfen.

Das obige ist der detaillierte Inhalt vonNodeJS-Puffer zu Nummer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn