我有一个十六进制(42 E6 56 00)
它应该被翻译成这个浮点数:115.2
,当然它是浮点数32
(我使用计算器得到了115.2
)。现在我想用C#来执行此操作,我用下面的代码,但它给了我奇怪的值:转换十六进制为浮点数32
byte[] bytes = BitConverter.GetBytes(0x42E65600);
if (BitConverter.IsLittleEndian) {
bytes = bytes.Reverse().ToArray();
}
float myFloat = BitConverter.ToSingle(bytes, 0);
我发现这个代码,它似乎是好的:uint num = uint.Parse(hex,System.Globalization.NumberStyles.AllowHexSpecifier); byte [] floatVals = BitConverter.GetBytes(num); float f = BitConverter.ToSingle(floatVals,0); – 2013-03-10 06:06:20
把这作为一个答案.. – 2013-03-10 06:08:54