comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@acm.org>
To: Björn <ssh9614@hotmail.com>
Cc: comp.lang.ada@ada-france.org
Subject: Re: How to byte swap an IEEE Float?
Date: Tue, 28 Jun 2005 19:35:56 -0400
Date: 2005-06-28T19:35:56-04:00	[thread overview]
Message-ID: <mailman.109.1120001776.17633.comp.lang.ada@ada-france.org> (raw)
In-Reply-To: <1119966822.201891.303810@g49g2000cwa.googlegroups.com> (ssh9614@hotmail.com's message of "28 Jun 2005 06:53:42 -0700")

"Björn" <ssh9614@hotmail.com> writes:

> I need to read some float values from file that have been written in
> big-endian byte order from a c-program. 

See SAL.Network_Order.Gen_Scalar_64 at
http://www.toadmail.com/~ada_wizard/ada/sal.html for a convenient way
to do this.

> The simple swapping procedure that I have just interchanges the byte
> order of type IEEE_Float_32 to get little-endian. 

Ok.

> The problem is that for some values (eg. 33.229000) it is a "NaN"
> when doing IEEE_Float_32'Read and I get a constraint error (invalid
> data) from stream_io when the value is read. How do I get around
> this?

Hmm. Are you saying the original value is _not_ a NaN? If so, then
your swap implementation is faulty; try mine.

-- 
-- Stephe




  parent reply	other threads:[~2005-06-28 23:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-28 13:53 How to byte swap an IEEE Float? Björn
2005-06-28 15:06 ` Marius Amado Alves
2005-06-28 15:55   ` Simon Wright
2005-06-28 16:59     ` Marius Amado Alves
2005-06-28 20:43       ` Björn
2005-06-29  0:13         ` Marius Amado Alves
2005-06-30 19:14         ` Randy Brukardt
2005-06-28 16:05 ` Martin Dowie
2005-06-28 23:35 ` Stephen Leake [this message]
2005-06-29 10:00   ` Björn
2005-06-30  0:52     ` Stephen Leake
2005-07-01  4:51       ` Simon Wright
2005-06-29 20:10 ` Damien
2005-06-30 11:35   ` Peter Hermann
2005-06-30 22:26     ` Damien
2005-07-01  7:37       ` Peter Hermann
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox