Başka bir işlevden aldığım bir ofsetle bir Uint8Array sahibim. Bu, ihtiyacım olan verileri içerir, ancak bu yazılan diziyi destekleyen arabelleğin başlangıcında başka şeyler de vardır.Bir Uint8Array'i ofset ile bir Int32Array'e nasıl dönüştürebilirim?
Gerçek veriler 32 bit tamsayıdır ve bu verileri Int32Array'da kullanmak istiyorum.
var outputBuffer = new ArrayBuffer(data.length);
var inputByteArray = new Uint8Array(outputBuffer);
for (var i=0; i < data.length; ++i) {
inputByteArray[i] = data[i]
}
var outputInt32Array= new Int32Array(outputBuffer);
sadece kaynak yeni Int32Array oluşturma ve geçme dolaysız yolu Uint8Array çalışmıyor: Ama bu dönüştürerek, Şu anda elle aşağıdaki şekilde yapıyorum basit olması görünmüyor
var outputInt32Array = new Int32Array(data) // data is the Uint8Array with offset
Bu, bir Uint8Array gibi davranan ve 32 bit tamsayılar değil, bireysel baytları dağıtan yazılan bir diziyle sonuçlanır. Ben hata alıyorum çalışmıyor da offset de geçerek onu çalışılıyor
var outputInt32Array = new Int32Array(data.buffer, data.byteOffset, length)
elle sadece her byte kopyalama mı: "RangeError: Int32Array ofset başlamadan 4 katı olması gerektiği" Int32Array bir offset ile bir Int8Array almak için nasıl?
Btw, eğer yeni bir Int32Array (veri) 'yi yaparsanız, her bir" Uint8 "öğesini" veri "den" Int32 "ye, yani arabelleğin boyutunu dört katına okur. – Bergi