我有
形式的数据 float [1000,2]
数据。
我想以byte [] b。
的形式转换该数据我想再次将byte []b
转换为float [1000,2]
数据的二维数组
我想这样做是因为我可以轻松地以字节的形式将数据保存到服务器。
答案 0 :(得分: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;
}
第二种方法从字节数组转换为2Dimensional float数组。它首先声明数组,然后每四个字节转换为浮点数,然后将其存储到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;
}