Heim >Web-Frontend >Front-End-Fragen und Antworten >So konvertieren Sie NodeJS-Bytes ineinander

So konvertieren Sie NodeJS-Bytes ineinander

PHPz
PHPzOriginal
2023-04-26 09:07:331114Durchsuche

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!

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