【发布时间】:2018-02-07 12:55:36
【问题描述】:
我正在使用 Bitconverter 将浮点数转换为字节数组。
byte[] ValueByteArray = BitConverter.GetBytes(Value);
现在我正在使用另一个应用程序评估我的应用程序,目标当然是我的输出完全相同。问题是,它不是。
我 100% 确定测试输出是正确的,我的值是“错误的”或其他格式。因为在连接到参考应用程序的客户端中,该值为 5.5,而我的值为 6.09414613e-039
我的申请:
- 测试值:5,5
- 字节数组值:0.0.5C.42
- 客户端应用程序中的值:6.09414613e-039
参考应用:
- 测试值:5,5
- 字节数组值:0.0.B0.40
- 客户端应用程序中的值:5,5
【问题讨论】:
-
BitConverter.ToString(BitConverter.GetBytes(5.5f))是00-00-B0-40。仔细看看Value究竟是什么。 -
当您使用
BitConverter生成将在不同机器之间共享的数据时,请务必牢记BitConverter.IsLittleEndian。您不希望您的应用程序产生依赖于所使用架构的结果。 (与问题本身无关,但我想我会指出一个潜在的陷阱)
标签: c# arrays bitconverter