JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】DataView.getFloat32()メソッドの使い方をサンプルコード付きで解説

DataViewオブジェクトのgetFloat32()メソッドは、ArrayBuffer内の指定した位置に格納されている符号付き32ビット浮動小数点数(IEEE 754形式)を取得して返します。バイナリデータを直接操作する際に、バッファ上の数値を読み取るために使われる重要なメソッドです。

構文

getFloat32()メソッドの基本構文は以下のとおりです。

dataView.getFloat32(byteOffset, littleEndian);

各パラメータの意味は次のとおりです。

  • byteOffset: データの読み取りを開始する位置をバイト単位で指定します。
  • littleEndian: 省略可能な引数です。trueを指定するとリトルエンディアン形式で読み取り、falseまたは省略した場合はビッグエンディアン形式で読み取ります。

基本的な使用例

次の例では、8バイトのArrayBufferを作成し、setFloat32()メソッドでMath.LOG2Eの値を書き込んだ後、getFloat32()でその値を読み出しています。

<html>
<head>
   <title>JavaScript Example</title>
</head>
<body>
   <script type="text/javascript">
      var arrayBuffer = new ArrayBuffer(8);
      var dataView = new DataView(arrayBuffer);
      dataView.setFloat32(1, Math.LOG2E);
      document.write(dataView.getFloat32(1));
   </script>
</body>
</html>

実行結果

1.4426950216293335

この例のように、setFloat32()には通常の数値だけでなく、Math.LOG2EやMath.PIなど、Mathオブジェクトが提供する数学定数も渡すことができます。書き込んだ値を同じ位置(ここではオフセット1)から読み出すことで、元の値が正しく取得できていることが確認できます。

値が書き込まれていない場合の挙動

DataViewに何も値が書き込まれていない状態でgetFloat32()を呼び出すと、このメソッドはNaN(Not a Number)を返します。次の例では、setFloat32()を値なしで呼び出しているため、読み出し結果はNaNになります。

<html>
<head>
   <title>JavaScript Example</title>
</head>
<body>
   <script type="text/javascript">
      var arrayBuffer = new ArrayBuffer(8);
      var dataView = new DataView(arrayBuffer);
      dataView.setFloat32(1);
      document.write(dataView.getFloat32(1));
   </script>
</body>
</html>

実行結果

NaN

まとめ

  • getFloat32()は、指定したバイトオフセットの位置から符号付き32ビット浮動小数点数を読み取って返すメソッドです。
  • 第2引数のlittleEndianで、バイト順(エンディアン)を切り替えられます。
  • 値が書き込まれていない位置を読み出した場合はNaNが返されるため、事前にsetFloat32()などで値を書き込んでおく必要があります。
  1. JavaScriptの関数パラメーターとは?使い方をサンプルコードで解説

    JavaScriptでは、関数を呼び出すときにさまざまなパラメーター(引数)を渡すことができます。関数側では、渡されたパラメーターを受け取り、それに対して任意の処理を実行することが可能です。また、1つの関数は複数のパラメーターを受け取ることができ、それぞれのパラメーターはカンマ(,)で区切って指定します。さらに、JavaScriptには arguments オブジェクトが用意されており、仮引数として宣言した変数とは別に、実際に関数へ渡されたすべての引数へアクセスできます。以下のサンプルコードでは、Array.from(arguments) を使って受け取った引数を配列化し、順番に画面へ出力して

  2. JavaScript DataView()とは?ArrayBufferのバイナリデータを読み書きする方法

    JavaScript の DataView は、ArrayBuffer(バイナリデータ)に対して、さまざまな数値型の読み書きを行うための低レベルインターフェースを提供するオブジェクトです。DataView を使うことで、1バイト単位で細かく制御しながら、Int16、Int32、Float64 など複数の数値型として同じバッファにアクセスできます。なお、ArrayBuffer はそのままでは直接操作できないため、DataView や TypedArray を介してアクセスする必要があります。DataView の主なメソッドsetInt16(offset, value):指定したオフセット位置に