如何使用C#将四个字节的二进制数据(big endian)转换为IEEE浮点值?
答案 0 :(得分:1)
一个简单的解决方案是反转传入的数组并将其提供给.Net Framework的BitConverter
:
byte[] reversed = data.Reverse().ToArray();
float value = BitConverter.ToSingle(reversed, 0);
对于使用大端值的完整位转换器,请查看Jon Skeet和Marc Gravell在MiscUtil library中的MiscUtil.Conversion.BigEndianBitConverter
,然后使用ToSingle(byte[] value, int startIndex)
:
byte[] data;
float value = BigEndianBitConverter.ToSingle(data, 0);
它支持的方法与.Net框架中的BitConverter
class相同。该来源可以在MiscUtil网站上找到。