浮点到其他格式的字节数组

Float to Byte array in other format

我正在使用 Bitconverter 将浮点数数组转换为字节数组。

byte[] ValueByteArray = BitConverter.GetBytes(Value);

现在我正在用另一个应用程序评估我的应用程序,目标当然是我的输出完全相同。问题是,事实并非如此。

我 100% 确定测试输出是正确的,我的值是 'wrong' 或其他格式。因为在客户端,连接参考应用,值为5.5,我的是6.09414613e-039

我的申请:

参考应用:

您的参考申请是正确的; 0x00005C42 是 55,不是 5.5;这可能就像您的某些解析代码中的小数说明符一样简单,就像逗号与句点一样简单。 6.09414613e-039 似乎是字节顺序中的一个差错(见底行)

示例:

float value = 5.5F;
var bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 00-00-B0-40

float value = 55;
var bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 00-00-5C-42

float value = 6.09414613e-039F;
var bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 00-5C-42-00