C# 将IEEE 754浮点转换为十六进制字符串

C# 将IEEE 754浮点转换为十六进制字符串,c#,.net,C#,.net,我有一个将十六进制转换成浮点的代码,我基本上需要这个操作的相反方向 byte[] bytes = BitConverter.GetBytes(0x445F4002); float myFloat = BitConverter.ToSingle(bytes, 0); MessageBox.Show(myFloat.ToString()); 我想输入浮点并将其转换为十六进制字符串 调用以获取表示浮点的字节数组 将字节数组转换为十六进制字符串: FWIW,你问题中的代码与此相反。事实上,您问题中的代

我有一个将十六进制转换成浮点的代码,我基本上需要这个操作的相反方向

byte[] bytes = BitConverter.GetBytes(0x445F4002);
float myFloat = BitConverter.ToSingle(bytes, 0);
MessageBox.Show(myFloat.ToString());
我想输入浮点并将其转换为十六进制字符串

  • 调用以获取表示浮点的字节数组
  • 将字节数组转换为十六进制字符串:
  • FWIW,你问题中的代码与此相反。事实上,您问题中的代码没有收到十六进制字符串。它接收一个用十六进制表示的int文本。如果您希望将十六进制字符串转换为浮点,那么可以使用上面链接中的代码将十六进制字符串转换为字节数组。然后将该字节数组传递给
    位转换器.ToSingle


    看来你在把这些放在一起时遇到了问题。此函数取自上面的问题链接,将字节数组转换为十六进制字符串:

    public static string ByteArrayToString(byte[] ba)
    {
      StringBuilder hex = new StringBuilder(ba.Length * 2);
      foreach (byte b in ba)
        hex.AppendFormat("{0:x2}", b);
      return hex.ToString();
    }
    
    可以这样称呼:

    string hex = ByteArrayToString(BitConverter.GetBytes(myfloat));
    


    在注释中,您声明希望反转字节。您可以在这里找到如何执行此操作:

    这里的答案是893.0001否,我需要将浮点值转换为hexI know。从你的问题标题中可以清楚地看出这一点。你只需要按照我答案中的步骤来做就行了。你能给我看一段适用于你答案的代码吗?我不太擅长处理ByteOK,我做到了。但我相信你自己也可以这样做。你点击我答案中的链接了吗?你读过我的答案了吗?你读过里面的密码了吗?如果要反转字节,请反转字节。