3

次の形式のデータがあります

float [1000,2]データ。

そのデータをバイト[]bの形式に変換したい。

そして再び、データbyte []bの2次元配列に変換したいfloat [1000,2]

データをバイト形式でサーバーに簡単に保存できるので、これを行いたいです。

4

1 に答える 1

4

これらの方法を使用できます。それらは単純なプログラミング構造を使用しており、理解するのは難しくないと思います。最初のメソッドは、float 2Dimansional 配列を 1 つのバイト配列に変換します。最初にバイト配列を宣言し、次に各 float 値を 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;
    }

2 番目のメソッドは、バイト配列から 2 次元浮動小数点配列に変換します。最初に配列を宣言し、次に各 4 バイトが浮動小数点数に変換され、その後、2D 浮動小数点配列の指定された位置に格納されます。

    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 に答える