3

Float32Array がどのように機能するかは理解できたと思いますが、まだ十分ではないようです。可能な最も単純な例では:

buffer = new ArrayBuffer(128);
dataView = new DataView(buffer);
floatArray = new Float32Array(buffer);

dataView.setFloat32(8, 7);
console.log(floatArray[2]); //prints gibberesh

私が理解した方法では、データ ビューは 8 番目のバイトから始まる float を 7 に設定する必要があるため、float 配列の 3 番目の float は 7 であると予想されます。

ここで何が欠けていますか?

ありがとう

4

1 に答える 1

1

これにより機能し、最後のパラメーターはlittleEndian

dataView.setFloat32(8, 7, true);

確かなことは言えませんが、これはより良いかもしれません。おそらく、Float32Array は常にシステムの littleEndian を使用しますが、DataView はどちらも使用できます。

var littleEndian = (function() {
  var buffer = new ArrayBuffer(2);
  new DataView(buffer).setInt16(0, 256, true);
  return new Int16Array(buffer)[0] === 256;
})();

dataView.setFloat32(8, 7, littleEndian);
于 2013-07-22T03:39:35.583 に答える