Nodejsでバッファを数値に変換する方法

王林
リリース: 2023-05-23 11:26:07
オリジナル
916 人が閲覧しました

Buffer は、Node.js でバイナリ データを処理するために使用されるオブジェクトです。ネットワーク データの読み取りと書き込み、ファイル操作、暗号化アルゴリズムなどのシナリオで重要な役割を果たします。バイナリ データを処理するプロセスでは、Buffer 型を数値型などの他の型に変換する必要がある場合があります。この記事では、Buffer型を数値型に変換する方法を紹介します。

  1. バッファ型を 16 進数の文字列に変換する

バッファ型を数値型に変換する前に、まず 16 進数の文字列に変換する必要があります。これは、以下に示すように、Buffer オブジェクトの toString() メソッドを呼び出すことで実現できます。

const buf = Buffer.from('abcd', 'utf8');
const hexString = buf.toString('hex'); // "61626364"
ログイン後にコピー

上記のコードでは、まず文字列 'abcd' を含む Buffer オブジェクトを作成し、それを次のように変換します。 16 の 16 進文字列。

  1. 16 進文字列を数値型に変換する

16 進文字列を数値型に変換する前に、数値型と 16 進数の関係を理解する必要があります。 JavaScript では、数値型は 10 進数、2 進数、8 進数、16 進数などのさまざまな方法で表現されます。このうち、10 進数がデフォルトの表現です。 16 進数の文字列を数値型に変換したい場合は、以下に示すように、parseInt() 関数を使用し、基本パラメータを 16 に指定する必要があります。

const hexString = '61626364';
const num = parseInt(hexString, 16); // 1633837924
ログイン後にコピー

上記のコードでは、16 進数を次のように指定します。文字列 '61626364' は、対応する数値型 1633837924 に変換され、変数 num に割り当てられます。

  1. バッファ型を数値型に直接変換する

バッファ型を 16 進文字列に変換してから数値型に変換することに加えて、Node.js は直接変換する方法も提供します。バッファタイプを数値タイプに変更します。これは、以下に示すように、Buffer オブジェクトの read メソッドを使用することで実現できます。

const buf = Buffer.from([0x01, 0x02, 0x03, 0x04]);
const num = buf.readUInt32BE(); // 16909060
ログイン後にコピー

上記のコードでは、まずバイト シーケンス [0x01, 0x02, 0x03, 0x04] を含む Buffer オブジェクトを作成します。 readUInt32BE() メソッドを使用して、対応する符号なし 32 ビット整数に変換します。 readUInt32BE() メソッドのパラメータは、読み取るバイト順序を指定します。BE はビッグ エンディアンを表します。

  1. バッファ タイプを他のタイプの数値に変換する

バッファ タイプを 16 進文字列および数値タイプに変換する方法に加えて、いくつかの状況があります。浮動小数点や符号付き整数などの他のタイプの数値に変換します。これは、以下に示すように、Buffer オブジェクトの read メソッドを使用し、読み取るバイト数とエンコード方法を指定することで実現できます。

const buf = Buffer.from([0x41, 0xb0, 0x00, 0x00]);
const num = buf.readFloatBE(); // 11
ログイン後にコピー

上記のコードでは、最初にバイトを含むシーケンスを作成します。 [0x41, 0xb0 , 0x00, 0x00] バッファ オブジェクトを取得し、readFloatBE() メソッドを使用して対応する浮動小数点数に変換します。 readFloatBE() メソッドのパラメータは、読み取りのバイト順序とエンコード方法を指定します。ここで、BE はビッグ エンディアンを表します。

この記事では、バッファ型を 16 進数文字列に変換する、16 進数文字列を数値型に変換する、バッファ型を数値型に直接変換する、バッファ型を変換するなど、バッファ型を数値型に変換するさまざまな方法を紹介します。他の型の数値型に変換します。これらの手法を理解することで、バイナリデータをより柔軟に扱えるようになり、Node.js開発の効率がさらに向上します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!