我有一个实际上来自声卡的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次,所以如果我可以删除副本,这将是值得的。
完美的伎俩,欢呼! –