字节数组到浮点转换 C#

kel*_*a88 3 c# arrays floating-point hex

我尝试使用下面的 C# 代码从十六进制文字转换为浮点数并获得正确的结果。我希望输入一个字节数组并将其转换为浮点,但似乎无法得到正确的结果。

0x4229ec00是当前格式。我需要它的byte array格式类似于...

new byte[]{ 0x01, 0x04, 0x01, 0x60, 0x00, 0x02, 0x70, 0x29}; //current output 42.48
Run Code Online (Sandbox Code Playgroud)

代码如下:

byte[] bytes = BitConverter.GetBytes(0x4229ec00);
float myFloat = floatConversion(bytes);

public float floatConversion(byte[] bytes)
{
    float myFloat = BitConverter.ToSingle(bytes, 0);
    return myFloat;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。谢谢你!

RAJ*_*RAJ 7

您可以修改您的浮点转换函数,如下所示

    public float floatConversion(byte[] bytes)
    {
        if (BitConverter.IsLittleEndian)
        {
            Array.Reverse(bytes); // Convert big endian to little endian
        }
        float myFloat = BitConverter.ToSingle(bytes, 0);
        return myFloat;
    }
Run Code Online (Sandbox Code Playgroud)