在用C#進行軟體開發的時候,需要用到位元組陣列和浮點陣列轉換功能,
其中位元組陣列是小端編碼,為了便于以后提高,先整理記錄如下:
byte[] data= ...; //位元組陣列, 從外部獲取
float[] floatArr = new float[data.Length / 4];
//第一種方法,位元組陣列轉換類轉換,最容易想到和處理
for (int i = 0; i < floatArr.Length; i++)
{
floatArr[i] = BitConverter.ToSingle(data, i * 4);
}
//第二種方法,快取復制--最為簡潔
Buffer.BlockCopy(data, 0, floatArr, 0, data.Length);
//第三種方法,位元組轉換處理方法,速度最快
for (int i = 0; i < floatArr.Length; i++)
{
floatArr[i] = data[i*4] | data[i *4+ 1] << 8 | data[i*4+2]<<16|data[i*4+3]<<24;
}
//第四種方法,不安全位元組,首先,需要調整專案屬性,勾選上允許不安全代碼
unsafe
{
fixed (byte* pBuffer = data)
{
float* pSample = (float*)pBuffer;
// now we can access samples via pSample e.g.:
for (int i = 0; i < floatArr.Length; i++)
{
floatArr[i] = pSample[i];
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/260268.html
標籤:其他
