comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: Calculate and set Parity
Date: Mon, 16 Sep 2002 18:58:44 GMT
Date: 2002-09-16T18:58:44+00:00	[thread overview]
Message-ID: <3D8629D3.2040603@acm.org> (raw)
In-Reply-To: am518n$qbq$1@newstoo.ericsson.se

Sebastian wrote:
> I need a subroutine that calculates the parity of a record type with the
> size of 16 bits. Is there some nice way
> to do this? I currently have a solution were I use Unchecked_Conversion to
> convert my variable to an
> array booleans, then I calculate every true etc. Is there some way to do
> this without using Unchecked_Conversion.

Well, you could always try

* using a machine code insertion
* using an imported C subprogram
* passing an address and size

but it you want it to be safe and readable, unchecked conversion to an 
array of Boolean seems like a good way to go. You then simply add up the 
Boolean'Pos of each element and determine if the result is even or odd 
("rem 2"). You could do an unchecked conversion to a 16-bit modular type 
and use shifts and masks to isolate the individual bits, but using 
Booleans seems simpler.

-- 
Jeff Carter
"Oh Lord, bless this thy hand grenade, that with it thou
mayst blow thine enemies to tiny bits, in thy mercy."
Monty Python and the Holy Grail




  parent reply	other threads:[~2002-09-16 18:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-16 16:42 Calculate and set Parity Sebastian
2002-09-16 18:14 ` Stephen Leake
2002-09-16 18:58 ` Jeffrey Carter [this message]
2002-09-16 19:51   ` tmoran
2002-09-17  1:36   ` tmoran
2002-09-17 22:05 ` Nick Roberts
2002-09-17 23:23   ` tmoran
2002-09-18  0:17   ` tmoran
2002-09-18 20:25     ` Nick Roberts
2002-09-18  2:52 ` SteveD
2002-09-18 18:29 ` Parity using 'Write, was " tmoran
2002-09-18 18:47   ` David C. Hoos
2002-09-18 22:17     ` tmoran
replies disabled

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