如题,比如:
有一个byte[4] 数组,存储的数据分别是:
158 73 150 179
实际上这四个字节存储的是一个float型的数据,怎么把这四个字节的数转变成正确的
float数呢?
听说:float型是一个四字节的类型,它的前三个字节是小数部分(包括符号),
最后的字节是指数部分(包括符号)是不是呢大侠们?
以上面这个byte数组为例子,大侠能否告知如何转换呢?
百托百托!!!!
有一个byte[4] 数组,存储的数据分别是:
158 73 150 179
实际上这四个字节存储的是一个float型的数据,怎么把这四个字节的数转变成正确的
float数呢?
听说:float型是一个四字节的类型,它的前三个字节是小数部分(包括符号),
最后的字节是指数部分(包括符号)是不是呢大侠们?
以上面这个byte数组为例子,大侠能否告知如何转换呢?
百托百托!!!!
C#还不会用联合,你如果会的话就简单了。union myf {
float f;
byte b[4];
}只要把byte[]按顺序写进myf.b[]中,myf.f 就是所要的float。
完成了,别忘了给大家看看。
http://allenlooplee.cnblogs.com/archive/2004/12/25/81917.html
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);