簡體   English   中英

為什么將Int16Array轉換為ArrayBuffer,結果不同?

[英]Why Int16Array to ArrayBuffer convert back Int16Array, result is different?

我有一個數據數組(從緩沖區分割) Int16Array[326784] ,其值類似於[579, 578, 576, 574, 570, ...] Int16Array[326784] [579, 578, 576, 574, 570, ...]

當我運行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相同。

為什么第一次轉換不同?

它是由於誤解TypedArray引起的。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM