我有一個十六進制(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