title: Why do higher-precision floating point formats have so many exponent bits?
body: <p>I've been looking at floating point formats, both <a href="https://en.wikipedia.org/wiki/IEEE_floating_point#Basic_and_interchange_formats" rel="noreferrer">IEEE 754</a> and <a href="https://en.wikipedia.org/wiki/Extended_precision#x86_extended_precision_format" rel="noreferrer">x87</a>. Here's a summary:</p>
  
  <pre><code>                Total       Bits per field
  Precision       Bits    Sign  Exponent  Mantissa
  Single          32      1     8         23  (+1 implicit)   
  Double          64      1     11        52  (+1 implicit)
  Extended (x87)  80      1     15        64
  Quadruple       128     1     15        112 (+1 implicit) 
  </code></pre>
  
  <p>My question is, why do the higher-precision formats have so many exponent bits? Single-precision gets you a maximum value on the order of 10^38, and I can see how in extreme cases (number of atoms in the universe) you might need a larger exponent. But double-precision goes up to ~10^308, and extended- and quadruple-precision have even more exponent bits. This seems much larger than could ever be necessary for actual hardware-accelerated computation. (It's even more absurd with negative exponents!)</p>
  
  <p>That being said, the mantissa bits are so obviously valuable that I figure there must be a good reason to sacrifice them in favor of the exponent. So what is it? I thought it might be to represent the difference between two adjacent values without needing subnormals, but even that doesn't take a big change in the exponent (-6 out of a full range of +1023 to -1022 for a double).</p>