I've been reading an article by Dr William T. Verts titled An 8-Bit Floating Point Representation where the author defines, as the title suggests, an 8-bit floating point representation with one bit for sign, three bits for exponent and the remaining four bits for the mantissa.
Question 1
Now, in the article, he writes:
The range of legal exponents (those representing neither denormalized nor infinite numbers) is then between 2^{-2} and 2^{+3}.
I'm confused as to what he means by legal in this context. And, why can't 2^{-3} can't be a 'legal' value? As when 2^{-3} offset by 3, gives 0 which is 000
in the exponent field.
Question 2
Next, he lists all possible values of numbers representable in this system. I'm attaching the screenshot of the first few denormalized numbers below.
I understand that we cannot represent small numbers in the normalized form, forcing us to detour from the norm and use 0
before the decimal point rather than the usual 1
, which gives us what we call a denormalized form.
But, why are we using -2
in the exponent of 2
(rather than -3
)?
According to the rules of excess-3, the exponent field should have -2+3=1 which is 001
in the exponent field, but it has 000
in the exponent field instead(it does have 001
in the normalized numbers). But, if we use 2^{-3}
, the exponent field indeed should have 000
as -3+3=0.
A nice summary of my second question would be:
Why are we not using 2^{-3} as the exponent from N=1 to N=15? The exponent field does have 000
which corresponds to -3 as the exponent.
Note: I understand that the nature of the topic itself is pretty confusing. Thus, if there is any vagueness in my question, please point it out in the comments.