2013-03-20 22 views
3

我有數據的形式爲如何將二維浮點數組轉換爲字節數組並反之亦然

float [1000,2]數據。

我想以byte [] b的形式轉換數據。

我再次想byte []b轉換爲float [1000,2]數據

的2維數組我想這樣做,因爲我可以以字節的形式將數據保存到服務器,可輕鬆。

+0

http://stackoverflow.com/questions/4742910/converting-float-to-byte4-and-back-to-float-in-netmf – Serdalis 2013-03-20 11:46:34

+0

重複你希望每個浮四個字節? – 2013-03-20 11:46:39

+0

我想將二維浮點數組(float [1000,2]數據)轉換爲一維字節數組(平均字節[] b) – 2013-03-20 11:51:54

回答

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; 
    } 

第二種方法將字節數組轉換爲二維浮點數組。它首先聲明數組,然後每四個字節轉換爲浮點數,然後將其存儲到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; 
    } 
+0

非常感謝你 – 2013-03-20 12:25:40

相關問題