value = (-1) sign * 2 (exponent-127) * 1.fraction
It should be:
value = (-1) sign * 2 (exponent-127) * (1 + fraction*2^-23)
It sounds trivial, but you can't reason mathematically about the first equation.
value = (-1) sign * 2 (exponent-127) * 1.fraction
It should be:
value = (-1) sign * 2 (exponent-127) * (1 + fraction*2^-23)
It sounds trivial, but you can't reason mathematically about the first equation.
Unfortunately, that means that you have no way to represent numbers in the denormal binate, which leads to severe problems with monotonicity. As you move to binates with smaller exponents the distance between representable numbers halves in all the normalizable binates. Unless you allow for denormals, you have a GIANT jump from the smallest normalizable number to zero.
This leads to problems in numerical algorithms. Taking differences to find slopes gets unstable as you approach convergence, causing converge to fail.
value = (-1)^sign * 2^(exponent-127) * 1.fraction".
"1.fraction" is nonsense that doesn't really mean anything, whereas (1 + fraction * 2^-23) does mean something. 1*10^4 + 2*10^3 + ...