Node.js では、Buffer はバイナリ データを処理するために使用されるクラスです。バイナリ データを扱う場合、多くの場合、データを 16 進形式に変換する必要があります。この記事では、Node.js の組み込みメソッドを使用して Buffer を 16 進数の文字列に変換する方法を紹介します。
Buffer クラスには、Buffer オブジェクトを指定されたエンコード形式の文字列に変換できる toString メソッドが用意されています。指定されたエンコード形式が 16 進数の場合、toString メソッドは 16 進形式の文字列を返します。
以下はサンプル コードです:
const buffer = Buffer.from('hello', 'utf8'); const hexString = buffer.toString('hex'); console.log(hexString); // 68656c6c6f
まず、文字列「hello」を含む Buffer オブジェクトを作成します。次に、toString メソッドを呼び出し、パラメータとして「hex」を渡します。最後に、変換された 16 進文字列を出力します。
readUInt8 は、指定されたインデックスで 8 ビット符号なし整数を読み取り、それを 10 の A に変換できる Buffer クラスのインスタンス メソッドです。 16 進形式の文字列。
以下はサンプル コードです:
const buffer = Buffer.from('hello', 'utf8'); let hexString = ''; for (let i = 0; i < buffer.length; i++) { const hex = buffer.readUInt8(i).toString(16); hexString += (hex.length === 1 ? '0' + hex : hex); } console.log(hexString); // 68656c6c6f
まず、文字列「hello」を含む Buffer オブジェクトを作成します。次に、for ループを使用して、Buffer オブジェクト内の各バイトを反復処理します。ループ本体では、readUInt8 メソッドを使用して、現在のインデックスにある 8 ビットの符号なし整数を読み取り、それを 16 進数形式の文字列に変換します。最後に、16 進文字列の各バイトを完全な文字列に連結して出力します。
toString メソッドの使用に加えて、Buffer.slice メソッドを使用して新しいバッファを取得することもできます。オブジェクトを変換し、16 進形式の文字列に変換します。
以下はサンプル コードです:
const buffer = Buffer.from('hello', 'utf8'); const hexString = buffer.slice(0, buffer.length).toString('hex'); console.log(hexString); // 68656c6c6f
まず、文字列「hello」を含む Buffer オブジェクトを作成します。次に、slice メソッドを使用して、元の Buffer オブジェクトのすべてのバイトを含む新しい Buffer オブジェクトを取得します。最後に、新しい Buffer オブジェクトを 16 進形式の文字列に変換し、出力します。
概要
この記事では、Node.js のバッファ オブジェクトを 16 進形式の文字列に変換する 3 つの方法を紹介します。 toString メソッドを使用するのが最も簡単な方法であり、最もよく使用される方法です。 readUInt8 メソッドと Buffer.slice メソッドを使用すると、より多くのコードが必要になりますが、バイナリ データをより柔軟に処理できます。実際の開発では、さまざまなニーズに応じて適切な方法を選択してバイナリ データを処理できます。
以上がnodejsバッファを16進数に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。