comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <martin@krischik.com>
Subject: Re: Bit manipulation
Date: Mon, 07 Feb 2005 14:20:46 +0100
Date: 2005-02-07T14:20:46+01:00	[thread overview]
Message-ID: <2092747.1qBBMuiTJs@linux1.krischik.com> (raw)
In-Reply-To: 211db0ae.0502070437.54add641@posting.google.com

Maurizio wrote:

> hi, i need two hint:
> 
> i need to acces to a 32 bit word (Interfaces.Unsigned_32).
> how i can do to take the three m.s.bit? (30,31,32)

Have you considered using a packed array?

http://en.wikibooks.org/wiki/Programming:Ada:Types:array#with_aliased_elements

Prehaps on conjunction with Unchecked_Conversion. 

> second, i need to send the 32 bit word over a Tcp connection to a C
> program, but
> socket work with usigned 8 bit word, so i need to split the 32 bit in
> 4 8bit word,
> and when i read from the socket take 4 8bit word and combine in a 32
> word.
> 
> i see that Ada.Unchecked_Conversion work (in an ada client/server test
> program)  but is correct?
> 
> --com_buffer_type is an array of  128 32bit word
> 
> subtype Datas is Ada.Streams.Stream_Element_Array(1..512); --128*4

Stream Elements are normaly not used directly. Ada.Streams only provide a
framework for the 'Read, 'Write, 'Input, and 'Output attributes. If you
know Java: It works a bit like the Serializable interface.

'Read, 'Write are low level - reading and writing raw data.
'Input, and 'Output are high level - storing array bound, object type etc.
pp. as well.

> function To_Raw is
>    new Ada.Unchecked_Conversion
>       (
>       Source => Com_Buffer_Type,  --Interfaces.Unsigned_32
>       Target => Datas);     --Stream_Element is mod 2 **
> Standard'Storage_Unit
>    function From_Raw is
>    new Ada.Unchecked_Conversion
>       (
>       Source => Datas,
>       Target => Com_Buffer_Type);

You should give com_buffer_type'Write (Stream, Datas)  a try.

Martin
-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com



  reply	other threads:[~2005-02-07 13:20 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-07 12:37 Bit manipulation Maurizio
2005-02-07 13:20 ` Martin Krischik [this message]
2005-02-07 15:32 ` Martin Dowie
2005-02-07 18:04   ` Martin Krischik
2005-02-08  0:32 ` Randy Brukardt
2005-02-08  3:11 ` Steve
2005-02-08 18:51   ` tmoran
  -- strict thread matches above, loose matches on Subject: below --
2000-11-07  0:00 Sandro Binetti
2000-11-07  0:00 ` gdemont
2000-11-08  7:22   ` Sandro Binetti
2000-11-07  0:00 ` Larry Kilgallen
2000-11-07  0:00   ` John English
2000-11-08  0:00   ` gdemont
2000-11-08  0:00     ` Robert Dewar
2000-11-08  0:00       ` Sandro Binetti
2000-11-08  0:00         ` gdemont
2000-11-09  4:00           ` Ken Garlington
2000-11-09  0:00             ` Larry Kilgallen
2000-11-09  0:00               ` Ken Garlington
2000-11-08  0:00         ` Nicolas Brunot
2000-11-08  0:00         ` Dale Stanbrough
2000-11-09  0:00           ` Sandro Binetti
2000-11-09  0:00             ` Ken Garlington
2000-11-09  0:00             ` gdemont
2000-11-10  0:00             ` Scott Ingram
2000-11-09  3:59         ` Ken Garlington
2000-11-09  4:52         ` Robert Dewar
2000-11-08  0:00       ` gdemont
2000-11-08  0:00         ` Larry Kilgallen
2000-11-09  4:50           ` Robert Dewar
2000-11-10  0:00             ` Lao Xiao Hai
2000-11-09  4:47         ` Robert Dewar
2000-11-09  0:00           ` gdemont
2000-11-11  0:00       ` Redryder
2000-11-11  0:00         ` Jeff Carter
2000-11-11  0:00           ` Redryder
2000-11-12  2:07             ` Ken Garlington
2000-11-12  5:56             ` Jeff Carter
2000-11-12  0:00               ` Robert Dewar
2000-11-12  0:00                 ` tmoran
2000-11-13  0:00                   ` Robert Dewar
2000-11-14  0:00                     ` Marc A. Criley
2000-11-13  0:54                   ` Ken Garlington
2000-11-12  6:40               ` tmoran
2000-11-13  0:00         ` Lutz Donnerhacke
2000-11-13  0:00           ` Robert Dewar
2000-11-13  0:00             ` Lutz Donnerhacke
2000-11-13  0:00               ` Robert Dewar
2000-11-13  0:00                 ` Lutz Donnerhacke
2000-11-13  0:00                   ` Pat Rogers
2000-11-13  0:00                     ` Brian Rogoff
2000-11-13  0:00                       ` F. Britt Snodgrass
2000-11-15  0:00                         ` Lutz Donnerhacke
2000-11-13  0:00                       ` Pat Rogers
2000-11-14  0:00                       ` Georg Bauhaus
2000-11-15  0:00                         ` Lutz Donnerhacke
2000-11-14  0:00                   ` Martin Dowie
2000-11-15  0:00                     ` Lutz Donnerhacke
2000-11-20  0:00                 ` Randy Brukardt
2000-11-21  0:00                   ` Lutz Donnerhacke
2000-11-21  0:00                     ` Stephen Leake
2000-11-22  0:00                       ` Lutz Donnerhacke
2000-11-13  0:00           ` Robert Dewar
2000-11-13  0:00             ` Lutz Donnerhacke
2000-11-13  0:00               ` Robert Dewar
2000-11-13  0:00                 ` Lutz Donnerhacke
2000-11-08  7:18   ` Sandro Binetti
1999-04-04  0:00 bit manipulation Jack Chow
1999-04-04  0:00 ` Matthew Heaney
1999-04-05  0:00 ` dennison
replies disabled

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