public static float FromShort(short v) { if (v == 0) { return(0); } var s = (v >> 15) & 1; var e = (v >> 10) & 31; var f = v & 1023U; var exp = e - 15 + 127; var frac = (int)f << 13; var r = (uint)(s << 31 | exp << 23 | frac); var fts = new FloatConverter { Bytes = r }; return(fts.Value); }
public static float ToFloat(this short value) { return(FloatConverter.FromShort(value)); }