Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menukar bait nodejs antara satu sama lain

Bagaimana untuk menukar bait nodejs antara satu sama lain

PHPz
PHPzasal
2023-04-26 09:07:331114semak imbas

Node.js ialah platform pembangunan popular yang dikuasakan oleh bahasa JavaScript dan boleh digunakan untuk membina aplikasi web yang besar dan berskala tinggi. Dalam Node.js, pemprosesan data binari adalah sangat biasa Oleh itu, menggunakan Node.js untuk melakukan penukaran bait juga merupakan topik yang sangat penting.

Byte to HexString

Dalam Node.js, menukar tatasusunan bait kepada rentetan heksadesimal adalah sangat mudah. Kita boleh menggunakan kelas Penampan untuk memprosesnya. Berikut ialah kod sampel untuk menukar tatasusunan bait kepada rentetan perenambelasan:

const buff = Buffer.from([0x12, 0x34, 0x56, 0x78]);
const hexString = buff.toString('hex');
console.log(`hexString: ${hexString}`);
// hexString: 12345678

Kaedah Buffer.from menerima tatasusunan sebagai parameter dan mengembalikan tika Penampan yang mengandungi bait ini. Kita boleh memberikan contoh Buffer kosong dengan panjang yang ditentukan dan kemudian menggunakan kaedah isian untuk mengisinya Jika perlu, kita juga boleh menggunakan kaedah slice() untuk memintas bahagian yang kita perlukan.

Kaedah toString() menerima parameter pengekodan pilihan, di sini kami menggunakan pengekodan heks. Kod contoh ini mengeluarkan rentetan perenambelasan, dan kita dapat melihat bahawa outputnya ialah 12345678.

HexString to Byte

Dalam Node.js, menukar rentetan perenambelasan kepada tatasusunan bait juga sangat mudah Kita hanya perlu menukar rentetan perenambelasan ini Hanya mengimportnya ke dalam kelas Penampan. Berikut ialah kod sampel yang menukar rentetan perenambelasan kepada tatasusunan bait:

const hexString = 'ab12fde9';
const byteArr = Buffer.from(hexString, 'hex');
console.log(`byteArr: ${byteArr}`);
// byteArr: <Buffer ab 12 fd e9>

Parameter pertama kaedah Buffer.from ialah jenis rentetan, yang menunjukkan dari mana kita ingin datang. Di sini kami menentukannya sebagai rentetan perenambelasan dan bukannya tatasusunan.

Parameter kedua adalah pilihan dan menunjukkan pengekodan yang hendak digunakan untuk menyahkod parameter pertama. Di sini kita tetapkan kepada hex.

Tukar tatasusunan bait kepada nombor perpuluhan

Dalam Node.js, menukar tatasusunan bait kepada nombor perpuluhan juga sangat mudah. Kita boleh menggunakan kelas ArrayBuffer dan kelas DataView untuk mencapai fungsi ini. Berikut ialah contoh kod yang menukar tatasusunan bait kepada nombor perpuluhan:

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

Kod sampel ini menggunakan kelas ArrayBuffer untuk mencipta penimbal bersaiz 4. Kemudian kami menggunakan kelas DataView untuk membaca dan menulis data dalam penimbal ini.

Pertama, kami mencipta objek jenis Uint8Array yang dipanggil byteArr dan menetapkannya kepada tatasusunan bait yang ingin kami tukar.

Seterusnya, kami mencipta objek instance Buffer dan DataView bernama buffer dan dataView. Kemudian, kami menggunakan kaedah setUint8() DataView untuk menulis setiap elemen dalam byteArr ke penimbal.

Akhir sekali, kami menggunakan kaedah getUint32() DataView untuk membaca data dalam penimbal dan mengembalikan nombor perpuluhan. Output kod sampel ini ialah 305419896.

Tukar nombor perpuluhan kepada tatasusunan bait

Begitu juga, dalam Node.js, menukar nombor perpuluhan kepada tatasusunan bait adalah sangat mudah. Kita hanya perlu menggunakan kaedah setUintX() kelas DataView. Berikut ialah kod sampel yang menukar nombor perpuluhan kepada tatasusunan bait:

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 ]

Kod sampel ini menggunakan kaedah setUint32 DataView untuk menulis nombor perpuluhan kepada contoh ArrayBuffer baharu. Seterusnya kita menukar contoh ArrayBuffer ini kepada tatasusunan bait dengan menghantarnya ke dalam Uint8Array.

Hasil keluaran kod sampel ini ialah tatasusunan bait dengan nilai [18, 52, 86, 120].

Ringkasan

Dalam Node.js, operasi seperti menukar bait kepada HexString, menukar HexString kepada bait, menukar nombor perpuluhan kepada tatasusunan bait dan menukar tatasusunan bait kepada nombor perpuluhan adalah sangat biasa. Kita boleh menggunakan kelas Buffer dan kelas DataView yang disediakan oleh Node.js untuk melaksanakan operasi ini. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Bagaimana untuk menukar bait nodejs antara satu sama lain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn