2016-11-16 192 views
-1

我有一個數據陣列(從緩衝區分割)Int16Array[326784]與值如[579, 578, 576, 574, 570, ...]爲什麼Int16Array轉換成ArrayBuffer Int16Array,結果不一樣?

當我運行b = new Int16Array(a.buffer, 0, a.length)結果是Int16Array[326784]但值是不同的:[0, 0, ..., 0, 18756, 19779, 2, 0, 19541, 4, ...]

如果我重複轉換:c = new Int16Array(b.buffer, 0, b.length)結果是一樣的b

爲什麼第一次轉換不同?

+0

你這樣做是正確的。它需要更多的研究。 – zerkms

+1

我已經解決了這個問題,並且稍後會更新答案。 – Fancyoung

回答

1

它引起誤解TypedArray。

在問題中,a = Int16Array(bufferA, x, y);,a只是緩衝區視圖,a.bufferbufferA

所以b = new Int16Array(a.buffer, 0, a.length)等於b = new Int16Array(bufferA, 0, a.length)