比如有一个数a(例如-1234.4123),我想赋给byte[] data (假设有四个元素),应该怎么写。

解决方案 »

  1.   

    http://hi.baidu.com/linuxking/blog/item/8bf4b7c6b9f352109d163d27.html
      

  2.   

    class Program{    static void Main(string[] args)    {        Console.WriteLine("Double and byte arrays conversion sample.");        // Create double to a byte array        double d = 12.09;        Console.WriteLine("Double value: " + d.ToString());        byte[] bytes = ConvertDoubleToByteArray(d);        Console.WriteLine("Byte array value:");        Console.WriteLine(BitConverter.ToString(bytes));         Console.WriteLine("Byte array back to double:");        // Create byte array to double        double dValue = ConvertByteArrayToDouble(bytes);        Console.WriteLine(dValue.ToString());         Console.ReadLine();    }     public static byte[] ConvertDoubleToByteArray(double d)    {        return BitConverter.GetBytes(d);    }    public static double ConvertByteArrayToDouble(byte[] b)    {        return BitConverter.ToDouble(b, 0);    }}
      

  3.   

            double d = 12.4;
            byte[] arr = BitConverter.GetBytes(d);
      

  4.   

    应该是这个方法了,但它转换成的byte是什么意思。因为要发送到MATLAB中,所以需要知道解码方式。还有GetBytes这个方法怎么设置转换的byte数组的维数。
    先谢谢各位                  double                    byte array
                       ------                    ----------
      0.0000000000000000E+000       00-00-00-00-00-00-00-00
      1.0000000000000000E+000       00-00-00-00-00-00-F0-3F
      2.5500000000000000E+002       00-00-00-00-00-E0-6F-40
      4.2949672950000000E+009       00-00-E0-FF-FF-FF-EF-41
      3.9062500000000000E-003       00-00-00-00-00-00-70-3F
      2.3283064365386963E-010       00-00-00-00-00-00-F0-3D
      1.2345678901234500E-300       DF-88-1E-1C-FE-74-AA-01
      1.2345678901234565E+000       FA-59-8C-42-CA-C0-F3-3F
      1.2345678901234567E+000       FB-59-8C-42-CA-C0-F3-3F
      1.2345678901234569E+000       FC-59-8C-42-CA-C0-F3-3F
      1.2345678901234569E+300       52-D3-BB-BC-E8-7E-3D-7E
     -1.7976931348623157E+308       FF-FF-FF-FF-FF-FF-EF-FF
      1.7976931348623157E+308       FF-FF-FF-FF-FF-FF-EF-7F
      4.9406564584124654E-324       01-00-00-00-00-00-00-00
                          NaN       00-00-00-00-00-00-F8-FF
                    -Infinity       00-00-00-00-00-00-F0-FF
                     Infinity       00-00-00-00-00-00-F0-7F
      

  5.   

    Byte[] a = new Byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };Byte[] b = new Byte[] { 34, 56, 43 };  //simulate the result converted from double.if (b.Length < a.Length)
        b.CopyTo(a, a.Length - b.Length);a就是你想要的结果了。
      

  6.   


    double dblTest = 10.56;
    byte[] bytDbl = BitConverter.GetBytes(dblTest);
    Console.WriteLine(BitConverter.ToDouble(bytDbl,0).ToString());
      

  7.   


    我的意思是:对于得到的字节矩阵b,怎么再转换回double型数据(因为要在matlab环境中转换,没有toDouble可用)
      

  8.   

    就是说由4.2949672950000000E+009 转换到00-00-E0-FF-FF-FF-EF-41的数学公式我需要知道