-1

我有一个浮点数组:public static List<float> myData = new List<float>();我需要将它们转换为大字节序字节数组并通过 UDP 连接发送它们。我不知道该怎么做,任何帮助将不胜感激!

4

2 回答 2

3
int width = sizeof(float);
byte[] data = new byte[myData.Count * width];

for (int i = 0; i < myData.Count; ++i)
{
    byte[] converted = BitConverter.GetBytes(myData[i]);

    if (BitConverter.IsLittleEndian)
    {
        Array.Reverse(converted);
    }

    for (int j = 0; j < width; ++j)
    {
        data[i * width + j] = converted[j];
    }

}

data将是字节数组,其中包含大端字节序中浮点数的位表示

要使用 UDP 发送,请尝试以下操作:

Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPAddress serverAddr = IPAddress.Parse("127.0.0.1");
IPEndPoint endPoint = new IPEndPoint(serverAddr, 13);
sock.SendTo(data, endPoint);
于 2012-11-28T14:32:27.437 回答
0

尝试以下操作:

    byte[] array=null;
    List<float> myData = new List<float>();
    myData.Add(43.1f);
    myData.Add(42.1f);
    myData.Add(41.1f);
    myData.Add(40.1f);
    foreach (float a in myData)
       array = BitConverter.GetBytes(a);
    //printing
    for (int i = 0; i < array.Length; i++)
    {
        Console.WriteLine(array[i]);
    }

输出:

输出

希望这可以帮助。

于 2012-11-28T14:38:45.957 回答