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