数値へのnodejsバッファ

WBOY
リリース: 2023-05-17 12:12:37
オリジナル
825 人が閲覧しました

Nodejs は、サーバーサイド プログラミングで広く使用されている非常に強力なバックエンド JavaScript ソリューションです。バッファ タイプも Nodejs の重要な機能の 1 つです。

Nodejs では、Buffer オブジェクトは主にバイナリ データの処理に使用されるため、通常はネットワーク通信やデータの永続化 (ファイルの読み取りと書き込みなど) などのシナリオで使用されます。

実際の業務ではJavaScriptでBuffer型のデータを数値型に変換する必要がある場面に遭遇することが多いので、この記事ではその解決策を紹介します。

  1. バッファを 10 進数に処理する

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 進数に処理します。

  1. バッファを 16 進数に処理する

バッファ データを 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
ログイン後にコピー
  1. ビッグエンディアン順序とリトルエンディアン順序の処理

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
ログイン後にコピー
  1. 概要

バッファ タイプを変換するJavaScript でのデータの数値型への変換は、Nodejs でよく使用される操作の 1 つです。さまざまなデコード方法を使用することで、データのバイト順序、ビッグエンディアンとスモールエンディアン、その他の属性を正確に識別して数値に変換できるため、送信、保存、読み取りなどの際のデータの正確性が保証されます。

以上がこの記事で紹介するNodejsでのBuffer型を数値型に変換する方法ですので、皆様の参考になれば幸いです。

以上が数値へのnodejsバッファの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート