The earliest drafts of IEEE-754 (2008) defined guidelines for what exponential widths and significant fields of floating arbitrary widths should be. This was not a strict requirement, but simply a recommended practice. It was considered that this was too cumbersome for minimal benefits, so it was generally excluded from the standard and replaced by:
Language standards should define mechanisms that support extensible accuracy for each supported base. Language support Extensible precision should allow users to specify p and emax. Language standards also allow extensible precision to be specified by specifying only p; in this case emax is determined by the locale should be at least 1000 Γ p when p β₯ 237 bits in binary format or p β₯ 51 digits in decimal format.
(3.7 Extended and expandable fixes, p14).
However, the standard still defines (unnecessarily) βinterchange formatsβ of each size of 32 bits larger than 128 in the tables in section 3.6 (p13). In particular, the binary format of width k has the exponent round(4*log2(k)) - 13 bits. For a specific case k=256 this gives:
exponent: round(4*log2(256)) - 13 = 32 - 13 = 19 significand: 256 - 1 - 19 = 236
For the 384-bit wide format following this formula, the exponent width will be:
round(4*log2(384)) - 13 = round(34.339850002884624) - 13 = 21 bits
Keep in mind that for arbitrary precision floating point arithmetic, there are many packages that do not meet these guidelines. This is just a definition of the "binary256" exchange format, and not what any particular implementation necessarily uses.
source share