3

我有以下形式的数据

float [1000,2]数据。

我想以字节 []b 的形式转换该数据。

我想再次转换byte []b为二维float [1000,2]数据数组

我想这样做是因为我可以轻松地将数据以字节的形式保存到服务器。

4

1 回答 1

4

你可以使用这些方法。他们使用简单的编程结构,我认为理解它们并不难。第一种方法将 float 2Dimansional 数组转换为一个字节数组。它首先声明字节数组,然后每个浮点值转换为 4 个字节并将它们存储到大字节数组中。

    public byte[] ToByteArray(float[,] nmbs)
    {
        byte[] nmbsBytes = new byte[nmbs.GetLength(0) * nmbs.GetLength(1)*4];
        int k = 0;
        for (int i = 0; i < nmbs.GetLength(0); i++)
        {
            for (int j = 0; j < nmbs.GetLength(1); j++)
            {
                byte[] array = BitConverter.GetBytes(nmbs[i, j]);
                for (int m = 0; m < array.Length; m++)
                {
                    nmbsBytes[k++] = array[m];
                }
            }
        }
        return nmbsBytes;
    }

第二种方法将字节数组转换为二维浮点数组。它首先声明数组,然后每四个字节转换为浮点数,然后将其存储到二维浮点数组中的指定位置。

    public float[,] ToFloatArray(byte [] nmbsBytes)
    {
        float[,] nmbs = new float[nmbsBytes.Length /4 / 2, 2];
        int k = 0;
        for (int i = 0; i < nmbs.GetLength(0); i++)
        {
            for (int j = 0; j < nmbs.GetLength(1); j++)
            {
                nmbs[i, j] = BitConverter.ToSingle(nmbsBytes,k);
                k += 4;
            }
        }
        return nmbs;
    }
于 2013-03-20T12:09:04.027 回答