From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: how to do bit-wise operation on none modular types?
Date: 1999/03/03
Date: 1999-03-03T00:00:00+00:00 [thread overview]
Message-ID: <F80u9G.37L.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 7bj7ti$4i@drn.newsguy.com
bill@nospam wrote:
: greetings,
: I have an integer value that is returned from some call (its status).
: I'd like to take the bit-wise "and" of this value against
: another value (16#FFFF#). (i.e. in C, do: 0xffff & i)
: Ada does not allow this, as both operands must be modular integer types
: (i.e. range from 0 to some positive value).
: what can one do? do I need to convert integer value returned from signed
: to unsigned (i.e. modular)? how?
Presuming the value is positive and less than the modulus of the
modular type, then you can just convert it to the modular type
using the normal conversion operator. E.g.:
type My_Mod is mod 2**<whatever>;
... My_Mod(I) and 16#ffff# ...
The other more direct route is:
... I mod 16#10000# ...
A good compiler will use a bit-wise and instruction when computing a "mod"
with a power of 2.
: cheers,
: Bill.
--
-Tucker Taft stt@averstar.com http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.) Burlington, MA USA
next prev parent reply other threads:[~1999-03-03 0:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-03-03 0:00 how to do bit-wise operation on none modular types? bill
1999-03-03 0:00 ` Tarjei Tj�stheim Jensen
1999-03-03 0:00 ` Tucker Taft [this message]
1999-03-03 0:00 ` Samuel Mize
1999-03-03 0:00 ` dennison
1999-03-03 0:00 ` fraser
1999-03-04 0:00 ` dennison
1999-03-04 0:00 ` Samuel Mize
1999-03-05 0:00 ` fraser
1999-03-03 0:00 ` Tucker Taft
1999-03-04 0:00 ` robert_dewar
1999-03-05 0:00 ` bourguet
1999-03-05 0:00 ` robert_dewar
1999-03-04 0:00 ` Tom Moran
1999-03-04 0:00 ` fraser
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox