byte[] myByteArray = new byte[] { 0x00, 0x01 , 0x02  , 0x8B , 0xB9 };
00 01 02   8B为整数部分从高到低的四个字节
B9为小数c# 怎么解析这个为数字啊 

解决方案 »

  1.   

    myByteArray[4]<<|myByteArray[3]<<|myByteArray[2]<<|myByteArray[1<<|myByteArray[0]
      

  2.   

    int n = BitConverter.ToInt32(myByteArray, 0);
                string s1 = n.ToString() + "." + myByteArray[4].ToString();
                double t = double.Parse(s1);
      

  3.   

    .net 的 Int 32 字节表示是从低到高的,但是你的表示是从高到低,所以需要转一下方向。可以这样转换值byte[] myByteArray = new byte[] { 0x00, 0x01, 0x02, 0x8B, 0xB9 };
    var myByteArray1 = new byte[4];
    Array.Copy(myByteArray, myByteArray1, 4);
    Array.Reverse(myByteArray1);
    var x = BitConverter.ToInt32(myByteArray1, 0);
    var y = (int)myByteArray[4];
    var result = x + y / 256.0;
      

  4.   


    您能帮我看下吗     byte[] myByteArray = new byte[] { 0x00, 0x00, 0x00, 0x01, 0x4F };
                int d = 0;
                int c = 4;
                for (int i = 0; i < c; i++)
                {
                    d |= myByteArray[i] << ((c - i - 1) * 8);
                }
                MessageBox.Show(d + "." + myByteArray[c]);//结果 1.79    实际数值为1.31