From: "Samuel T. Harris" <sam_harris@hso.link.com>
Subject: Re: Boolean Representation
Date: 1998/09/24
Date: 1998-09-24T00:00:00+00:00 [thread overview]
Message-ID: <360A8CCB.2D358953@hso.link.com> (raw)
In-Reply-To: 6udriu$hfi$1@nnrp1.dejanews.com
dewarr@my-dejanews.com wrote:
>
> In article <6udkcj$87j$1@nnrp1.dejanews.com>,
> matthew_snyder@my-dejanews.com wrote:
> > Is it safe to make the assumption that a boolean value of FALSE will always
> > be represented as a 0 and a value of TRUE will always be represented as a 1?
> > Will an unchecked conversion from a boolean to an integer always yield the
> > same results with different compilers?
>
> Whether true or false, this is junky coding, just use
> Boolean'Pos (val) to get 0 or 1 in a for sure portable
> manner. Remember that to use an unchecked conversion for
> Boolean, you would have to use a 1-bit integer, anything
> else most definitely gives an implementation defined result.
>
Good advice. In general I also am not concerned with the
internal representations of enumeration literals. I'm
usually concerned only with their order and the fact that
each has a unique ordinal within its type.
However, I have had occasion to be concerned with the
actual internal representation. This is where enumeration
representation clauses come in handy. Specifically, I have
had to represent a memory-mapped device with an Ada record.
One of the fields was a 16-bit flag array. A packed array
of booleans fit nicely. However, to insure the boolean
literals FALSE and TRUE have the appropriate internal
numbers, I used a derived type of boolean to which I applied
the appropriate representation clause. I know that this
might sound a bit paranoid but I tend to favor ultra-correctness
over any reliance on common compiler implementations.
--
Samuel T. Harris, Principal Engineer
Raytheon Training Incorporated
"If you can make it, We can fake it!"
next prev parent reply other threads:[~1998-09-24 0:00 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-09-24 0:00 Boolean Representation matthew_snyder
1998-09-24 0:00 ` dewarr
1998-09-24 0:00 ` Samuel T. Harris [this message]
1998-09-25 0:00 ` dewarr
1998-09-27 0:00 ` Samuel T. Harris
1998-09-28 0:00 ` dewar
1998-09-24 0:00 ` matthew_snyder
1998-09-24 0:00 ` Tom Moran
1998-09-25 0:00 ` dewarr
1998-09-25 0:00 ` Tom Moran
1998-09-24 0:00 ` dennison
1998-09-25 0:00 ` dewarr
1998-09-25 0:00 ` Robert I. Eachus
1998-09-24 0:00 ` dennison
1998-09-24 0:00 ` Keith Thompson
1998-09-25 0:00 ` dennison
1998-09-25 0:00 ` Keith Thompson
1998-09-26 0:00 ` Tucker Taft
1998-09-26 0:00 ` Keith Thompson
1998-09-27 0:00 ` null pointer representation (was: Boolean Representation) Arthur Evans Jr
1998-09-27 0:00 ` Keith Thompson
1998-09-28 0:00 ` dewarr
1998-09-28 0:00 ` Lieven Marchand
1998-09-28 0:00 ` Keith Thompson
1998-09-28 0:00 ` dewarr
1998-09-30 0:00 ` Keith Thompson
1998-10-02 0:00 ` Robert I. Eachus
1998-09-27 0:00 ` Boolean Representation dewarr
1998-09-27 0:00 ` dewarr
-- strict thread matches above, loose matches on Subject: below --
1998-09-24 0:00 matthew_snyder
1998-09-25 0:00 ` Tucker Taft
1998-09-25 0:00 ` dewarr
1998-09-25 0:00 ` dewarr
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox