2016-11-16 41 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)

相关问题