浮点到其他格式的字节数组
Float to Byte array in other format
我正在使用 Bitconverter 将浮点数数组转换为字节数组。
byte[] ValueByteArray = BitConverter.GetBytes(Value);
现在我正在用另一个应用程序评估我的应用程序,目标当然是我的输出完全相同。问题是,事实并非如此。
我 100% 确定测试输出是正确的,我的值是 'wrong' 或其他格式。因为在客户端,连接参考应用,值为5.5,我的是6.09414613e-039
我的申请:
- 测试值:5,5
- 字节数组值:0.0.5C.42
- 客户端应用程序中的值:6.09414613e-039
参考应用:
- 测试值:5,5
- 字节数组值:0.0.B0.40
- 客户端应用程序中的值:5,5
您的参考申请是正确的; 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
我正在使用 Bitconverter 将浮点数数组转换为字节数组。
byte[] ValueByteArray = BitConverter.GetBytes(Value);
现在我正在用另一个应用程序评估我的应用程序,目标当然是我的输出完全相同。问题是,事实并非如此。
我 100% 确定测试输出是正确的,我的值是 'wrong' 或其他格式。因为在客户端,连接参考应用,值为5.5,我的是6.09414613e-039
我的申请:
- 测试值:5,5
- 字节数组值:0.0.5C.42
- 客户端应用程序中的值:6.09414613e-039
参考应用:
- 测试值:5,5
- 字节数组值:0.0.B0.40
- 客户端应用程序中的值:5,5
您的参考申请是正确的; 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