depends on how flexible you are with the definition of "represented" and "representable" -
Despite what typical literature says, the integer that's actually "largest" in IEEE 754 double precision, without any bigint library or external function call, with a completely full mantissa, that is computable, storable, and printable is actually :
9,007,199,254,740,991 * 5 ^ 1074 (~2546.750773909... bits)
4450147717014402272114819593418263951869639092703291
2960468522194496444440421538910330590478162701758282
9831782607924221374017287738918929105531441481564124
3486759976282126534658507104573762744298025962244902
9037796981144446145705102663115100318287949527959668
2360399864792509657803421416370138126133331198987655
1545144031526125381326665295130600018491776632866075
5595837392240989947807556594098101021612198814605258
7425791790000716759993441450860872056815779154359230
1891033496486942061405218289243144579760516365090360
6514140377217442262561590244668525767372446430075513
3324500796506867194913776884780053099639677097589658
4413789443379662199396731693628045708486661320679701
7728916080020698679408551343728867675409720757232455
434770912461317493580281734466552734375
I used xxhash to compare this with gnu-bc and confirmed it's indeed identical and no precision lost. There's nothing "denormalized" about this number at all, despite the exponent range being labeled as such.
Try it on ur own system if u don't believe me. (I got this print out via off-the-shelf mawk) - and you can get to it fairly easily too :
- one(1) exponentiation/power (
^ aka **) op,
- one(1) multiplication (
*) op,
- one (1)
sprintf() call, and
- either one(1) of
—
substr() or regex-gsub()
to perform the cleanup necessary
Just like the 1.79…E309 number frequently mentioned,
- both are mantissa limited
- both are exponent limited
- both have ridiculously large
ULPs (unit in last place)
- and both are exactly 1 step from "overwhelming" the floating point unit with either an overflow or underflow to give you back a usable answer
Negate the binary exponents of the workflow, and you can have the ops done entirely in this space, then just invert it once more at tail end of workflow to get back to the side what we typically consider "larger",
but keep in mind that in the inverted
exponent realm, there's no "gradual overflow"
— The 4Chan Teller