unpackDouble method

double unpackDouble()

Implementation

double unpackDouble() {
  int h32 = unpackUint32();
  int l32 = unpackUint32();
  int sign = h32 >> 31;
  int exp = ((h32 >> 20) & 0x7ff) - 1023;
  int hfrac = (h32 & 0xfffff) | 0x100000;
  double frac = hfrac * pow(2, exp - 20).toDouble() + l32 * pow(2, exp - 52).toDouble();
  return (sign == 0 ? 1 : -1) * frac;
}