<div dir="ltr"><div><div><div><br>Float fminNormalized significand 1.0<br>Float fminNormalized exponent -1022<br><br>Float fminNormalized predecessor significand 1.9999999999999996<br>Float fminNormalized predecessor exponent -1023<br><br></div><div>But the significand only has 52 bits in this case of underflow.</div><div></div>Gradual underflow is removing the leading 1, so that one should better be written like:<br><div>Float fminNormalized predecessor = 2r0.1111111111111111111111111111111111111111111111111111e-1022</div>and that means that the exponent is still -1022 for gradual underflow (aka Float emin)...<br></div><br>And the smallest Float above zero is :<br>Float fmin significand 1.0<br>Float fmin exponent -1074<br></div>or<br>Float fmin = 2r0.0000000000000000000000000000000000000000000000000001e-1022<div class="gmail_extra"><br></div><div class="gmail_extra">Nicolas<br><br></div><div class="gmail_extra"><div class="gmail_quote">2014-11-25 18:42 GMT+01:00 Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>    who wrote the Float class comment?  Two things,</div><div><br></div><div>- first the comment mentions &quot;I&quot; and thanks several people, but there is no comment stamp to reveal the author.  It would be lovely if the author could &quot;sign&quot; this comment</div><div><br></div><div>- second, there seems to be a minor error (but I&#39;m no expert), the comment states<br clear="all"><div><br></div><div>&quot;It may help you to know that the basic format is...</div><div><span style="white-space:pre-wrap">        </span>sign<span style="white-space:pre-wrap">                </span>1 bit</div><div><span style="white-space:pre-wrap">        </span>exponent<span style="white-space:pre-wrap">        </span>11 bits with bias of 1023 (16r3FF) to produce an exponent</div><div><span style="white-space:pre-wrap">                                                </span>in the range -1023 .. +1024</div><div><span style="white-space:pre-wrap">                                </span>- 16r000:</div><div><span style="white-space:pre-wrap">                                        </span>significand = 0: Float zero</div><div><span style="white-space:pre-wrap">                                        </span>significand ~= 0: Denormalized number (exp = -1024, no hidden &#39;1&#39; bit)</div><div><span style="white-space:pre-wrap">                                </span>- 16r7FF:</div><div><span style="white-space:pre-wrap">                                        </span>significand = 0: Infinity</div><div><span style="white-space:pre-wrap">                                        </span>significand ~= 0: Not A Number (NaN) representation</div><div><span style="white-space:pre-wrap">        </span>mantissa<span style="white-space:pre-wrap">        </span>53 bits, but only 52 are stored (20 in the first word, 32 in the second).  This is because a normalized mantissa, by definition, has a 1 to the right of its floating point, and IEEE-754 omits this redundant bit to gain an extra bit of precision instead.  People talk about the mantissa without its leading one as the FRACTION, and with its leading 1 as the SIGNFICAND.&quot;</div><div><br></div><div>But if the significand has a leading zero then surely the section in the middle should read</div><div><br></div><div><div><span style="white-space:pre-wrap">        </span>sign<span style="white-space:pre-wrap">                </span>1 bit</div><div><span style="white-space:pre-wrap">        </span>exponent<span style="white-space:pre-wrap">        </span>11 bits with bias of 1023 (16r3FF) to produce an exponent</div><div><span style="white-space:pre-wrap">                                                </span>in the range -1023 .. +1024</div><div><span style="white-space:pre-wrap">                                </span>- 16r000:</div><div><span style="white-space:pre-wrap">                                        </span>mantissa = 0: Float zero</div><div><span style="white-space:pre-wrap">                                        </span>mantissa ~= 0: Denormalized number (exp = -1024, no hidden &#39;1&#39; bit)</div><div><span style="white-space:pre-wrap">                                </span>- 16r7FF:</div><div><span style="white-space:pre-wrap">                                        </span>mantissa = 0: Infinity</div><div><span style="white-space:pre-wrap">                                        </span>mantissa ~= 0: Not A Number (NaN) representation</div></div><div><br></div><div>Right?</div><span class=""><font color="#888888">-- <br><div>best,<div>Eliot</div></div>
</font></span></div></div>
<br><br>
<br></blockquote></div><br></div></div>