我有一個實際上來自聲卡的16位樣本的字節數組。所以1000字節實際上代表500個短(16位值)。將字節數組轉換爲短褲數組而不復制數據
目前我將它們轉換是這樣的:
byte [] inputData = new byte[1000];
short [] convertedData = new short[500];
Buffer.BlockCopy(inputData, 0, convertedData , 0, 1000);
它工作正常,這是相當快,因爲它是一個低級別的字節複製。
但是有沒有辦法做到這一點沒有副本?即告訴C#將此區域的內存視爲500個短而不是1000個字節的數組?我知道在C/C++中,我只需要投射指針就可以工作。
此副本發生在一個緊密的循環中,每秒高達5000次,所以如果我可以刪除副本,這將是值得的。
完美的伎倆,歡呼! –