[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 10 bytes real

Thierry Wannier <thierry.wannier@unifr.ch> writes:

> Thanks for the idea, but unfortunately it does not solve my problem, since the
> data file really contains 10 bytes reals.
> I thought that a way to turn around the problem would be to
> a) read the ten bytes,
> b) reorder them in little-endian (PC type if I recall correctly)
> c) read the components of the number (i.e. decompose the real in its
> significand and exponent parts (that's how I do understand reals are build
> up))
> d) recompose a real (double precision: 16 bytes) using this information.
> Unfortunately, I am no computer specialist but just a middle range user, and I
> have
> no idea about the possibilities of doing this decomposition/recomposition of a
> real number.

If you can do the research and find the specs on Intel 10-bit reals,
we can probably figures something out.

I found the following bit ranges:

            float  double  80-bit
sign           31      63      79
exponent    23-30   52-62   56-78
mantissa     0-22    0-51    0-55

It seems 10-byte format supports a *really* large exponent.  That's
pretty wierd.  You have it tough because 10-bytes is not an even
multiple of any of the IDL types.  Thus you will need to insert your
10xN array into a 16xN array and then convert to ULONG64.  Then the
bit twizzling comes.  Here ISHFT and AND will be your friends.


Craig B. Markwardt, Ph.D.         EMAIL:    craigmnet@cow.physics.wisc.edu
Astrophysics, IDL, Finance, Derivatives | Remove "net" for better response