如题,比如:
有一个byte[4] 数组,存储的数据分别是:
158           73       150          179
实际上这四个字节存储的是一个float型的数据,怎么把这四个字节的数转变成正确的
float数呢?
听说:float型是一个四字节的类型,它的前三个字节是小数部分(包括符号),
最后的字节是指数部分(包括符号)是不是呢大侠们?
以上面这个byte数组为例子,大侠能否告知如何转换呢?
百托百托!!!!

解决方案 »

  1.   

    C下面是用联合。
    C#还不会用联合,你如果会的话就简单了。union myf {
        float f;
        byte b[4];
    }只要把byte[]按顺序写进myf.b[]中,myf.f 就是所要的float。
      

  2.   

    再给你个C#中实现联合的链接。
    完成了,别忘了给大家看看。
    http://allenlooplee.cnblogs.com/archive/2004/12/25/81917.html
      

  3.   

    //这样勉强可以,不知道有没有更好的办法。
    using System.Runtime.InteropServices;
    [StructLayout(LayoutKind.Explicit, Size=8)]
    public struct myfloat 
    {
    [FieldOffset(0)]public float f;
    [FieldOffset(0)]public byte b1;
    [FieldOffset(1)]public byte b2;
    [FieldOffset(2)]public byte b3;
    [FieldOffset(3)]public byte b4;
    };
    //使用时,反过来给f赋值得到byte[]一样
    myfloat myf = new myfloat();
    myf.b1 = 205;
    myf.b2 = 204;
    myf.b3 = 204;
    myf.b4 = 61;//0.1F
    Console.WriteLine(myf.f);
      

  4.   

    http://community.csdn.net/Expert/topic/5191/5191950.xml?temp=.223797
      

  5.   

    谢谢各位兄弟,我用了wdy9927兄的方法,jointan()兄的System.BitConverter.GetBytes我的类库里没有,不过是好兄弟,谢谢.