/// <summary> /// /// </summary> /// <param name="exp"></param> /// <returns></returns> public static double PowerOf2(int exp) { if (exp > 1023 || exp < -1022) { throw new ArgumentException("Exponent out of bounds"); } long expBias = exp + ExponentBias; long bits = expBias << 52; return(BitConverter.Int64BitsToDouble(bits)); }
public object?ToObject() { switch (CVType) { case CV_EMPTY: return(null); case CV_BOOLEAN: return((object)((int)_data != 0)); case CV_I1: return((object)((sbyte)_data)); case CV_U1: return((object)((byte)_data)); case CV_CHAR: return((object)((char)_data)); case CV_I2: return((object)((short)_data)); case CV_U2: return((object)((ushort)_data)); case CV_I4: return((object)((int)_data)); case CV_U4: return((object)((uint)_data)); case CV_I8: return((object)((long)_data)); case CV_U8: return((object)((ulong)_data)); case CV_R4: return((object)(BitConverter.Int32BitsToSingle((int)_data))); case CV_R8: return((object)(BitConverter.Int64BitsToDouble(_data))); case CV_DATETIME: return(new DateTime(_data)); case CV_TIMESPAN: return(new TimeSpan(_data)); case CV_ENUM: return(BoxEnum()); case CV_MISSING: return(Type.Missing); case CV_NULL: return(System.DBNull.Value); case CV_DECIMAL: case CV_STRING: case CV_OBJECT: default: return(_objref); } }