Limitations of Marc-32 machine numbers

1.5k Views Asked by At

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:

  1. Find binary number: $(0.25)_{10}=({0.01})_{\text{b}}$
  2. 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.
  3. Add 127 to the exponent in 2, as we use excess representation: $0.1\times 2^{-2+127}$
  4. Find binary number of exponent: $0.1\times 2^{1111101}$
  5. 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?