次の形式のデータがあります
float [1000,2]
データ。
そのデータをバイト[]bの形式に変換したい。
そして再び、データbyte []b
の2次元配列に変換したいfloat [1000,2]
データをバイト形式でサーバーに簡単に保存できるので、これを行いたいです。
次の形式のデータがあります
float [1000,2]
データ。
そのデータをバイト[]bの形式に変換したい。
そして再び、データbyte []b
の2次元配列に変換したいfloat [1000,2]
データをバイト形式でサーバーに簡単に保存できるので、これを行いたいです。
これらの方法を使用できます。それらは単純なプログラミング構造を使用しており、理解するのは難しくないと思います。最初のメソッドは、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;
}