using System.Buffers.Binary;
short[] values = {16400, -2098, -9962, -30933};
byte[] buf = new byte[values.Length * sizeof(short)];
for (int i = 0; i < values.Length; i++)
BinaryPrimitives.WriteInt16BigEndian(buf.AsSpan(i * sizeof(short)), values[i]);
double result = BinaryPrimitives.ReadDoubleBigEndian(buf);
Console.WriteLine(result);