我需要将一个float
值转换为十六进制字符串,然后再将其转换回来。在线IEEE 754转换器可以帮助我完成这个操作。以下是我尝试实现该转换的代码:
unsafe static void Main(string[] args)
{
float f = 0.0023984962F;
long l = *((long*)&f);
float r = *((float*)&l);
Console.WriteLine("{0} <-> {1:X} <-> {1:F1} <-> {2:F1}", f, l, r);
Console.ReadLine();
}
我的问题:
使用浮点数
0.0023984962
期望结果是0x3B1D3017
, 但我的代码输出的是0x22CB20C3B1D3017
。我错在哪儿了?如何将输出保存到变量中?