Nodejs は、サーバーサイド プログラミングで広く使用されている非常に強力なバックエンド JavaScript ソリューションです。バッファ タイプも Nodejs の重要な機能の 1 つです。
Nodejs では、Buffer オブジェクトは主にバイナリ データの処理に使用されるため、通常はネットワーク通信やデータの永続化 (ファイルの読み取りと書き込みなど) などのシナリオで使用されます。
実際の業務ではJavaScriptでBuffer型のデータを数値型に変換する必要がある場面に遭遇することが多いので、この記事ではその解決策を紹介します。
Nodejs では、バイナリ データを 10 進数に変換するのは非常に簡単です。バッファクラス。 readInt メソッドでサポートされるパラメータには、バイト数、オフセット、符号なし整数を使用するかどうかが含まれます。
たとえば、8 バイトのバッファ型データの場合、次のステートメントを使用して 10 進数に変換できます。
let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); let number = buffer.readIntBE(0, 8); console.log(number); //输出为78187493520
上記のコードでは、Buffer.from メソッドは次のとおりです。 8 バイトの長さを変換するために使用されます。バイトの Buffer オブジェクトが作成されます。次に、readIntBE メソッドを使用して 10 進数に処理します。
バッファ データを 10 進数に処理するだけでなく、16 進数に処理することもできます。これは、Nodejs に付属する toString メソッドを通じて実現できます。
let buffer = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF]); let hex = buffer.toString('hex'); console.log(hex); // 输出为:1234567890abcdef
Buffer オブジェクトを数値として処理する場合、データのバイト順序を考慮する必要があることに注意してください。 。通常、データのソースと使用上のニーズに基づいてデータのバイト順序を決定する必要があります。
Nodejs では、一般的な BE メソッドと LE メソッドを使用してバイト順序を決定できます。 BE はビッグ エンディアン オーダーを指し、LE はリトル エンディアン オーダーを指します。
BE: データを上位バイトから下位バイトの順に格納します。つまり、上位バイトが最初、下位バイトが最後です。
LE: データを下位バイトから上位バイトの順に格納します。つまり、下位バイトが最初、上位バイトが最後です。
たとえば、2 バイトのバッファ データの場合、1 つは BE、もう 1 つは 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
バッファ タイプを変換するJavaScript でのデータの数値型への変換は、Nodejs でよく使用される操作の 1 つです。さまざまなデコード方法を使用することで、データのバイト順序、ビッグエンディアンとスモールエンディアン、その他の属性を正確に識別して数値に変換できるため、送信、保存、読み取りなどの際のデータの正確性が保証されます。
以上がこの記事で紹介するNodejsでのBuffer型を数値型に変換する方法ですので、皆様の参考になれば幸いです。
以上が数値へのnodejsバッファの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。