我有此代码用于将 a 转换byte[]
为float[]
.
public float[] ConvertByteToFloat(byte[] array)
{
float[] floatArr = new float[array.Length / sizeof(float)];
int index = 0;
for (int i = 0; i < floatArr.Length; i++)
{
floatArr[i] = BitConverter.ToSingle(array, index);
index += sizeof(float);
}
return floatArr;
}
问题是,我通常会得到一个NaN
结果!为什么会这样?我检查了是否有数据,byte[]
数据似乎很好。如果有帮助,这些值的示例是:
new byte[] {
231,
255,
235,
255,
}
但这NaN
在转换为浮点数后返回 (Not a Number)。可能是什么问题呢?还有其他更好的转换byte[]
方式float[]
吗?我确信读入缓冲区的值是正确的,因为我将它与我的其他程序(对 .wav 文件执行放大)进行了比较。