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)
任何帮助将不胜感激。谢谢你!
您可以修改您的浮点转换函数,如下所示
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)