public ExpandedDouble(long rawBits) {int biasedExp = Math.toIntExact(rawBits >> 52);if (biasedExp == 0) {BigInteger frac = BigInteger.valueOf(rawBits).and(BI_FRAC_MASK);int expAdj = 64 - frac.bitLength();_significand = frac.shiftLeft(expAdj);_binaryExponent = (biasedExp & 0x07FF) - 1023 - expAdj;} else {_significand = getFrac(rawBits);_binaryExponent = (biasedExp & 0x07FF) - 1023;}}

public ExpandedDouble(long rawBits){int biasedExp = (int)(rawBits >> 52);if (biasedExp == 0){BigInteger frac = new BigInteger(rawBits)&BI_FRAC_MASK;int expAdj = 64 - frac.BitLength();_significand = frac<<expAdj;_binaryExponent = (biasedExp & 0x07FF) - 1023 - expAdj;}else{BigInteger frac = GetFrac(rawBits);_significand = frac;_binaryExponent = (biasedExp & 0x07FF) - 1023;}}
