C# IEEE754 转十进制

C# IEEE754 to decimal

我得到了一个 HEX FLOAT IEEE 754 数据,例如“0x0017A8A6”,如何在 C# 中将其转换为十进制“1550502”。

我有 2 个在线转换器,但无法获得十进制值,只有“2.172716E-39” http://www.h-schmidt.net/FloatConverter/IEEE754.html http://www.binaryconvert.com/convert_signed_int.html?hexadecimal=0017A8A6

谢谢。

您可以使用以下行在 C# 中解析十六进制字符串(不带前导 0x):

int test = Int32.Parse("0017A8A6", NumberStyles.HexNumber);

但是,如果该位模式被解释为 IEEE754,则它具有不同的含义,即“2.172716E-39”。

最后 15 位是尾数(可以认为是数字),接下来的 8 位是用于缩放尾数的指数。最后一位是符号位。