C#的字节数组转换为浮点数组的四种方法总结

            在用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];
                    }
                }
            }

 

你可能感兴趣的:(c#开发,学习,c#,格式转换,性能分析,字节数组转换为浮点数组)