浮点数与十六进制数如何互相转换.

解决方案 »

  1.   

    float f = 123.456;
    string s = BitConverter.ToString(BitConverter.GetBytes(f)).Replace("-","");
      

  2.   

    //转回浮点数
    int len = s.Length+1/2
    byte[] arr = new byte[len]
    for(int i=0;i<len;i++)
    {
        arr[i] = Convert.ToByte(s.Substring(i*2,2),16);
    }
    float f1 = BitConverter.ToSingle(arr);
      

  3.   

    有错,改一下//转回浮点数
    int len = s.Length/2
    byte[] arr = new byte[len]
    for(int i=0;i<len;i++)
    {
        arr[i] = Convert.ToByte(s.Substring(i*2,2),16);
    }
      

  4.   

    //转回浮点数
    int len = s.Length/2
    byte[] arr = new byte[len]
    for(int i=0;i<len;i++)
    {
        arr[i] = Convert.ToByte(s.Substring(i*2,2),16);
    }
    float f1 = BitConverter.ToSingle(arr);
      

  5.   

    float f1 = BitConverter.ToSingle(arr);
    报错,重载tosingle方法未获取"1"参数.
      

  6.   

    arr[i] = Convert.ToByte(s.Substring(i*2,2),16);这句话可能还需要修改.
    谢谢viena
      

  7.   

    float f1 = BitConverter.ToSingle(arr,0);
      

  8.   

    float f = 1.2;
    string s = BitConverter.ToString(BitConverter.GetBytes(f)).Replace("-","");
     生成的数为9A 99 99 3F
    arr[i] = Convert.ToByte(s.Substring(i*2,2),16);可能是这句话没通过.
      

  9.   

    //贴到这个份上,无语float f = 1.2f;
    string s = BitConverter.ToString(BitConverter.GetBytes(f)).Replace("-", "");//s = s.Replace(" ", "");//如果中间有空格
    byte[] arr = new byte[s.Length / 2];
    for (int i = 0; i < s.Length / 2; i++)
        arr[i] = Convert.ToByte(s.Substring(i * 2, 2), 16);
    float f1 = BitConverter.ToSingle(arr, 0);
    Text = f1.ToString();