将十进制/浮点值转换为符合IEEE754标准的十六进制值

时间:2015-05-19 12:50:29

标签: c# hex decimal

我正在寻找一些C#源代码,它可以将十进制/浮点值转换为符合IEEE754标准的十六进制值。

1 个答案:

答案 0 :(得分:0)

将hax转换为单精度,步骤低于

  1. 使用X格式提供程序将Conevrt十进制转换为字符串
  2. 将hax转换为字节数组
  3. 将二进制转换为数组中所有元素的字节
  4. 转换为单个

    decimal decValue = 989.99M;
    string hexValue = decValue.ToString("X");
    //Convert to float(24)/Single-precision floating-point format/ IEEE 754-2008/ binary32.
    
    byte[] raw = new byte[hexValue.Length / 2];
    for (int i = 0; i < raw.Length; i++)
    {
        raw[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
        raw[raw.Length - i - 1] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
    }
    
    float f = BitConverter.ToSingle(raw, 0);