2
我需要一個Double[]
轉換爲Short[]
到Byte[]
雙轉換到短到字節
我轉換到短首先,由於Double
有許多位,所以如果我直接將其轉換爲Bytes
我會得到空字節。
Intially我有一個名爲Double[]
充滿wavPuroDer
與信息
short[] wavShortDer = ConvertToShort(wavPuroDer);
byte[] wavByteDer = ConvertToByte(wavShortDer);
public static short[] ConvertToShort(double[] doble)
{
short[] shorty = new short[100000000];
for (int i = 0; i < doble.Length; i++)
{
shorty[i]=Convert.ToInt16 (doble[i]);
}
return shorty;
}
public static byte[] ConverToByte(short[] shorty)
{
byte[] bytey = new byte[1000000000];
int j = 0;
for (int i = 0; i < shorty.Length; i++)
{
byte[] byteArray = BitConverter.GetBytes(shorty[i]);
bytey[j] = byteArray[0];
bytey[j+1] = byteArray[1];
j = j + 2;
}
return bytey;
}
我的問題是,IM在該行獲得一個System.IndexOutOfRangeException
bytey[j] = byteArray[0];
,我不能讓這個陣列中的任何較大...
有人可以幫忙嗎? 謝謝!
(對不起我的英語不好,它沒有我的主要語言) `
你不應該使用'new short [100000000]'你分配WAY的內存超過了必要的數量,它會被放在大對象堆上。你應該做'新的短[doble.length]'而不是 – 2014-09-24 05:03:29