110,571
社区成员
发帖
与我相关
我的任务
分享
private static unsafe float HexToFloat(byte[] byteValue)
{
float[] fltValuePtr = new float[1];
int sizeOfValue = Marshal.SizeOf(typeof(float));
fixed (float* pTempValue = fltValuePtr)
{
Marshal.Copy(byteValue, 0, new IntPtr(pTempValue), sizeOfValue);
}
return fltValuePtr[0];
}
private static byte[] ToFloatByteValue(string data)
{
if (data.Length != 8) return null;
byte[] ret = new byte[4];
ret[3] = byte.Parse(data.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
ret[2] = byte.Parse(data.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
ret[1] = byte.Parse(data.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
ret[0] = byte.Parse(data.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
return ret;
}
static void Main(string[] args)
{
float f = HexToFloat(ToFloatByteValue("4263E7EA"));
Console.WriteLine(f.ToString());
Console.ReadLine();
}