public static void Main()
Console.WriteLine(ToSingle());
Console.WriteLine(string.Join(",", FromSingle(5f)));
public static float ToSingle()
var data = new Int16[] { -22119, 15125 };
var upper = BitConverter.GetBytes(data[0]);
var lower = BitConverter.GetBytes(data[1]);
bytes[0] = (byte) (upper[0] >> 8);
bytes[1] = (byte) (upper[1] >> 0);
bytes[2] = (byte) (lower[0] >> 8);
bytes[3] = (byte) (lower[1] >> 0);
return BitConverter.ToSingle(bytes, 0);
public static Int16[] FromSingle(float single)
var bytes = BitConverter.GetBytes(single);
var upper = BitConverter.ToInt16(bytes);
var lower = BitConverter.ToInt16(bytes, 2);
return new Int16[] { upper, lower };