Heim >Web-Frontend >Front-End-Fragen und Antworten >So konvertieren Sie NodeJS-Bytes ineinander
Node.js ist eine beliebte Entwicklungsplattform, die auf der JavaScript-Sprache basiert und zum Erstellen großer, hoch skalierbarer Webanwendungen verwendet werden kann. In Node.js ist die Verarbeitung von Binärdaten sehr verbreitet. Daher ist die Verwendung von Node.js zur Durchführung der Bytekonvertierung ebenfalls ein sehr wichtiges Thema.
Byte zu HexString
In Node.js ist die Konvertierung eines Byte-Arrays in einen hexadezimalen String sehr einfach. Wir können die Buffer-Klasse verwenden, um es zu verarbeiten. Hier ist ein Beispielcode zum Konvertieren eines Byte-Arrays in eine hexadezimale Zeichenfolge:
const buff = Buffer.from([0x12, 0x34, 0x56, 0x78]); const hexString = buff.toString('hex'); console.log(`hexString: ${hexString}`); // hexString: 12345678
Die Buffer.from-Methode akzeptiert ein Array als Parameter und gibt eine Buffer-Instanz zurück, die diese Bytes enthält. Wir können ihm eine leere Pufferinstanz einer bestimmten Länge übergeben und sie dann mit der Fill-Methode füllen. Bei Bedarf können wir auch die Slice()-Methode verwenden, um den benötigten Teil abzufangen. Die
toString()-Methode akzeptiert einen optionalen Kodierungsparameter, hier verwenden wir Hex-Kodierung. Dieser Beispielcode gibt eine hexadezimale Zeichenfolge aus, und wir können sehen, dass die Ausgabe 12345678 ist.
HexString zu Byte
In Node.js ist das Konvertieren einer hexadezimalen Zeichenfolge in ein Byte-Array ebenfalls sehr einfach. Wir müssen diese hexadezimale Zeichenfolge nur in die Buffer-Klasse importieren. Hier ist ein Beispielcode zum Konvertieren einer hexadezimalen Zeichenfolge in ein Byte-Array:
const hexString = 'ab12fde9'; const byteArr = Buffer.from(hexString, 'hex'); console.log(`byteArr: ${byteArr}`); // byteArr: <Buffer ab 12 fd e9>
Der erste Parameter der Buffer.from-Methode ist ein Zeichenfolgentyp, der angibt, woher wir kommen möchten. Hier geben wir es als hexadezimale Zeichenfolge und nicht als Array an.
Der zweite Parameter ist optional. Er gibt an, welche Codierung zum Decodieren des ersten Parameters verwendet werden soll. Hier stellen wir es auf Hex.
Konvertieren Sie ein Byte-Array in eine Dezimalzahl.
In Node.js ist das Konvertieren eines Byte-Arrays in eine Dezimalzahl ebenfalls sehr einfach. Wir können die ArrayBuffer-Klasse und die DataView-Klasse verwenden, um diese Funktion zu erreichen. Hier ist ein Beispielcode zum Konvertieren eines Byte-Arrays in eine Dezimalzahl:
const byteArr = new Uint8Array([0x12, 0x34, 0x56, 0x78]); const buffer = new ArrayBuffer(4); const dataView = new DataView(buffer); byteArr.forEach((item, index) => { dataView.setUint8(index, item); }); const decNum = dataView.getUint32(0, false); console.log(`decNum: ${decNum}`); // decNum: 305419896
Dieser Beispielcode verwendet die ArrayBuffer-Klasse, um einen Puffer der Größe 4 zu erstellen. Dann haben wir die DataView-Klasse verwendet, um die Daten in diesem Puffer zu lesen und zu schreiben.
Zuerst erstellen wir ein Objekt vom Typ Uint8Array namens byteArr und setzen es auf das Byte-Array, das wir konvertieren möchten.
Als nächstes haben wir Buffer- und DataView-Instanzobjekte mit den Namen buffer und dataView erstellt. Anschließend verwenden wir die Methode setUint8() von DataView, um jedes Element in byteArr in den Puffer zu schreiben.
Schließlich verwenden wir die Methode getUint32() von DataView, um die Daten im Puffer zu lesen und eine Dezimalzahl zurückzugeben. Die Ausgabe dieses Beispielcodes ist 305419896.
Konvertieren Sie eine Dezimalzahl in ein Byte-Array.
In ähnlicher Weise ist das Konvertieren einer Dezimalzahl in ein Byte-Array in Node.js sehr einfach. Wir müssen lediglich die Methode setUintX() der Klasse DataView verwenden. Das Folgende ist ein Beispielcode, der eine Dezimalzahl in ein Byte-Array konvertiert:
const decNum = 305419896; const buffer = new ArrayBuffer(4); const dataView = new DataView(buffer); dataView.setUint32(0, decNum, false); const byteArr = new Uint8Array(buffer); console.log(`byteArr: ${byteArr}`); // byteArr: Uint8Array [ 18, 52, 86, 120 ]
Dieser Beispielcode verwendet die setUint32-Methode von DataView, um eine Dezimalzahl in eine neue ArrayBuffer-Instanz zu schreiben. Als nächstes konvertieren wir diese ArrayBuffer-Instanz in ein Byte-Array, indem wir sie an ein Uint8Array übergeben.
Das Ausgabeergebnis dieses Beispielcodes ist ein Byte-Array mit den Werten [18, 52, 86, 120].
Zusammenfassung
In Node.js sind Vorgänge wie das Konvertieren von Byte in HexString, das Konvertieren von HexString in Byte, das Konvertieren von Dezimalzahlen in Byte-Arrays und das Konvertieren von Byte-Arrays in Dezimalzahlen sehr häufig. Wir können die von Node.js bereitgestellten Buffer-Klassen und DataView-Klassen verwenden, um diese Vorgänge zu implementieren. Ich hoffe, dieser Artikel hilft Ihnen!
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie NodeJS-Bytes ineinander. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!