JavaScriptのDataView.getInt16()メソッドとは?使い方とサンプルコードを解説
DataViewオブジェクトのgetInt16()メソッドは、ArrayBuffer(バイト配列)内の指定した位置から、符号付き16ビット整数を読み取り、その値を返すメソッドです。バイナリデータを扱う際に、バイト列を数値として解釈したい場合に活用されます。
構文
getInt16()メソッドの基本的な構文は以下のとおりです。
dataView.getInt16(byteOffset, littleEndian)
- byteOffset:読み取りを開始するバイト位置(必須)
- littleEndian:エンディアンを指定する省略可能な引数。trueの場合はリトルエンディアン、falseまたは未指定の場合はビッグエンディアンとして読み取ります
なお、符号付き16ビット整数で表現できる値の範囲は、-32768~32767です。
基本的な使用例
次の例では、setInt16()メソッドで値「3225」を書き込み、その後getInt16()メソッドで同じ位置から値を読み取っています。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
dataView.setInt16(1, 3225);
document.write(dataView.getInt16(1));
</script>
</body>
</html>
出力結果:
3225
小数値を渡した場合の挙動
このメソッドには浮動小数点数(float)の値を渡すことができません。小数値を指定した場合は、自動的に整数値へ切り捨てられて処理されます。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
dataView.setInt16(1, 564.22);
document.write(dataView.getInt16(1));
</script>
</body>
</html>
出力結果:
564
この例では「564.22」を渡していますが、小数部分が切り捨てられ、「564」という整数として保存・読み取りされています。
データが存在しない場合の挙動
DataViewに対して何も値が書き込まれていない状態でデータを読み取ろうとした場合、このメソッドは「0」を返します。
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var arrayBuffer = new ArrayBuffer(20);
var dataView = new DataView(arrayBuffer);
document.write(dataView.getInt16(1));
</script>
</body>
</html>
出力結果:
0
これは、ArrayBufferが初期化された時点ですべてのバイトが「0」で埋められているためです。意図しない「0」を読み取らないよう、getInt16()を呼び出す前にsetInt16()などで適切な値を書き込んでおくことが重要です。
まとめ
- getInt16()は、指定したバイト位置から符号付き16ビット整数を読み取るメソッド
- 表現できる範囲は-32768~32767
- 小数値は整数に切り捨てられる
- 初期化直後の未書き込み領域から読み取ると「0」が返る
- 第2引数でエンディアン(バイト順)を指定可能
-
JavaScriptの関数パラメーターとは?使い方をサンプルコードで解説
JavaScriptでは、関数を呼び出すときにさまざまなパラメーター(引数)を渡すことができます。関数側では、渡されたパラメーターを受け取り、それに対して任意の処理を実行することが可能です。また、1つの関数は複数のパラメーターを受け取ることができ、それぞれのパラメーターはカンマ(,)で区切って指定します。さらに、JavaScriptには arguments オブジェクトが用意されており、仮引数として宣言した変数とは別に、実際に関数へ渡されたすべての引数へアクセスできます。以下のサンプルコードでは、Array.from(arguments) を使って受け取った引数を配列化し、順番に画面へ出力して
-
JavaScript DataView()とは?ArrayBufferのバイナリデータを読み書きする方法
JavaScript の DataView は、ArrayBuffer(バイナリデータ)に対して、さまざまな数値型の読み書きを行うための低レベルインターフェースを提供するオブジェクトです。DataView を使うことで、1バイト単位で細かく制御しながら、Int16、Int32、Float64 など複数の数値型として同じバッファにアクセスできます。なお、ArrayBuffer はそのままでは直接操作できないため、DataView や TypedArray を介してアクセスする必要があります。DataView の主なメソッドsetInt16(offset, value):指定したオフセット位置に