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