<1>实现Float32转成Byte[]
private byte[] bytes2float(float value)
{
byte[] bytes = BitConverter.GetBytes(value);
return bytes;
}
<2>实现Byte[]转成Float32
public float bytes2float(byte[] bytes)
{
StringBuilder stringBuffer = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
if (i != 0)
{
stringBuffer.Insert(0, " ");
}
string hex = Convert.ToString(bytes[i], 2);
stringBuffer.Insert(0, hex);
//位数不够补零
for (int j = hex.Length; j < 8; j++)
{
stringBuffer.Insert(0, "0");
}
}
string str = stringBuffer.ToString();
str = str.Replace(" ", string.Empty);
byte[] intBuffer = new byte[4];
// 将二进制串按字节逆序化
for (int i = 0; i < 4; i++)
{
string hex = str.Substring(24 - 8 * i, 8);
intBuffer[i] = Convert.ToByte(hex, 2);
}
return BitConverter.ToSingle(intBuffer, 0);
}