2016-10-09 11 views
0

標準のjavascript配列に有効な32ビット符号付きintergersを取り込み、それをUInt8Arrayに変換する必要があります。 、[255, 3498766, -99]の入力が与えられると、そこで型なしの32ビット整数の配列をUInt8Arrayに変換する最も効率的な方法は?

255  = [0x00, 0x00, 0x00, 0xFF] 
3498766 = [0x00, 0x35, 0x63, 0x0E] 
-99  = [0xFF, 0xFF, 0xFF, 0x9D] 

:私が得UInt8Arrayは、これらの数字の符号付き32ビット表現を含むたい

[255, 3498766, -99] 

:たとえば、次の標準のJavaScript配列を検討

[0x00, 0x00, 0x00, 0xFF, 0x00, 0x35, 0x63, 0x0E, 0xFF, 0xFF, 0xFF, 0x9D] 

私はこれを達成するための素朴な方法を考えることができますが、私は可能な限り直接変換を探しています。

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array – Craicerjack

答えて

2

a = [255, 3498766, -99] 
 
b = new Uint8Array(Int32Array.from(a).buffer) 
 
console.log(b)

結果は、ほとんどの今日のプロセッサでプラットフォームのバイト順、つまりLEになります。あなたの例のようにビッグエンディアンを本当に欲しければ、DataView.getInt32を使ってさらに手を加える必要があります(詳細はhereを参照してください)。

+0

LEは問題ありません。私はそれをどのように視覚化しているのかという点で、例はBEだけでした。 –

関連する問題