即是所谓的IEEE754标准,这也是大多数硬件存储浮点数的标准。单精度浮点数占4个字节,表示范围为:在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。
在C#中的转换函数为:
1,由四个字节的十六机制数组转浮点数:
byte[] bytes = new byte[4];
BitConverter.ToSingle(bytes, 0);
2,由浮点数转数组:
byte[] bytes = BitConverter.GetBytes(floatValue);
这种转换方法经常用于串口通讯中,表示范围足够各种传感器数值传输及工控场合,将要发送的浮点数据转换为4个字节的十六机制数,然后由串口发出,在接收端再将其转换为浮点数。
单片机或非.net环境下使用转换程序则不能调用BitConverter类!
提供以下代码以供转换:
未修改过的如下:可以在C#中直接调用而不用库函数
public static float ToFloat(byte[] data)
{
float a = 0;
byte i;
byte[] x = data;
unsafe
{
void* pf;
fixed (byte* px = x)
{
pf = &a;
for (i = 0; i < data.Length; i++)
{
*((byte*)pf + i) = *(px + i);
}
}
}