web-dev-qa-db-ja.com

Javascriptでバイト配列を保存する方法

Javascriptにバイト値の大きな配列(100万を超える可能性が高い)を格納します。通常の配列に通常の数字を使用すると、数字はIEEEの倍精度として保存されるため8 MBかかりますが、バイトとして保存できる場合は1 MBになります。

明らかな理由により、そのようなスペースを無駄にしないようにしたいと思います。バイトをダブルではなくバイトとして保存する方法はありますか? Chromeで動作する限り、ブラウザの互換性は私にとっては問題ではありません。これが違いを生む場合、これはHTML5にあります。

46
Kendall Frey

型付き配列 を使用すると、 これらの型 の配列を保存できます。

  • Int8
  • Uint8
  • Int16
  • Uint16
  • Int32
  • Uint32
  • Float32
  • Float64

例えば:

​var array = new Uint8Array(100);
array[42] = 10;
alert(array[42]);​

実際にご覧ください here

52
Kendall Frey
var array = new Uint8Array(100);    
array[10] = 256;
array[10] === 0 // true

私はfirefoxとchromeで検証しました、それは本当にバイトの配列です:

var array = new Uint8Array(1024*1024*50);  // allocates 50MBytes
8
reuns

いくつかの大きな固定サイズの文字列の配列にデータを保存できます。その文字列の配列内の特定の文字にアクセスし、その文字をバイトとして扱うのが効率的でなければなりません。

質問をより具体的にするために、おそらくインターフェースとして表現される、サポートしたい操作を見るのは面白いでしょう。

2
Hew Wolff