Lau writes:

> P Witte wrote:
> > While were talking fp, can someone please explain what the purpose of
the
> > $81f bias (or whatever the technical term) is? Why not just represent
> > exponents as +/-32k ?
> >
> > Per
> >
> >
>
> It's a bit "historic", I suspect.
>
> It allows all operations on the exponent to be done with unsigned
> arithmetic, which saves some brain work when implementing the stuff.
>
> It gives an easy test for a "magic" value of zero exponent, which is
> handy for the "special" cases. If is were not biased, you would have to
> use a value like "0x8000", which would become messy.
>
> The specific bias varies, but to some extent is one that preserves a
> balance of mantissa precision for maximum and minimum absolute values.
> It is generally just one off what you'd expect.
>
> Note that, with the IEEE format, operations on both exponent and
> mantissa are unsigned (as it uses a separate flag to indicate
> positive/negative value). The QDOS implementation is somewhat of a
> hybrid, as it uses signed arithmetic for the mantissa. I suspect
> Sinclair adopted that format to make the code a fraction quicker. By
> doing so (instead of using the "concealed leading bit"), you lose one
> bit of precision (and introduce the "invalid representation" problems),
> but you can write shorter, more straightforward software code. The IEEE
> format is expected to be done by harware, which can happily
> "re-manifest" the concealed leading bit of the fly. I'm waffling a bit
> here... but if QL used a concealed leading one on a 32-bit mantissa, it
> would have to do 33-bit arithmetic all the time.
>
> PS. Just as an aside, I cut my teeth on IBM System/360 floating point,
> which used a hexadecimal exponent! Very ragged precision - not a good
> idea at all!

Thanks for the explanation. (I may have to come back to this ;)

Per



Reply via email to