I am in doubt whether I understand Marc-32 machine numbers limitations correctly, however, before I try to explain my questions, I will just shortly explain how one find Marc-32 numbers (to ensure that I have understood that correctly).
How I understand Marc-32 numbers:
If we have the decimal number $0.25$ as a simple example, the Marc-32 number is found step by step:
- Find binary number: $(0.25)_{10}=({0.01})_{\text{b}}$
- Multiply so it becomes on the form $1.0...$: $1.0\times 2^{-2}$, as we know the first number is 1, we can store and extra bit by writing on the form 1.0 instead of 0.1.
- Add 127 to the exponent in 2, as we use excess representation: $0.1\times 2^{-2+127}$
- Find binary number of exponent: $0.1\times 2^{1111101}$
- We write the marc number with 0 in front, as the number is positive, then put the exponent, put the fraction from (2) that 0 (from the 1.0) and fill the last 22 numbers, after the $0$ from the fraction, with 0: $0111110100000000000000000000000$
Questoins regarding its limitations:
If this understanding of how to make Marc-32 numbers is correct, then I'm in doubt about the following observations about Marc-32 limitations:
- Infinite binary numbers cannot be Marc-32, as the mantissa only can hold a fraction where, when the fraction is on binary form, there can as maximum be a 22 zeros, and then a 1 (when we say there is 24 bits with having removed the first 1, as we just know is there) - elsewwise you will need extra bits. Is that correct?
- My professor says, that we reserve the exponent in step 2, so it isn't 0 or 255, as we have $(11111111)_{\text{b}}=256$ combinations, which is equal to the span from 0 to 255 in decimal numbers, where we don't want extremes. We use excess representation, so we add 127 to the exponent, e, is equal to the original exponent $m+127$. We have $e=m+127$ and $0<e<255$, so $-126\leq m\leq 127$ which means we have that a number we want to write as a Marc-32 machine number, has to be in $[2^{-126},2^{127}]$. Is that correct?