comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison <dennison@telepath.com>
Subject: Re: First time Ada has let me down
Date: Wed, 25 Oct 2000 04:50:17 GMT
Date: 2000-10-25T04:50:17+00:00	[thread overview]
Message-ID: <3A46E0A5.6C9EC5FD@telepath.com> (raw)
In-Reply-To: 8FD7DEBEEsynoptikdamudderfuck@news

Note to new posters: Always state up front that you are using Ada 83. Its an
obsolete standard, so most folks here will assume you are using Ada 95 unless
you say otherwise.

Shifty wrote:

> This stumped me for awhile, but then I went home and picked up a C book.
> Hmmm, chapter 15 - bit fiddling.  I learned a bunch of stuff about masks
> and bitwise operators and came up with a working solution.  (which seems
> much better than using record representation clauses and typecasting a 4
> bit value into an 8 bit integer)

"typecasting"? No such thing in Ada. Integer types are convertable to each
other, but that's a simple operation that generates *no* code (except
sometimes a range check, which you can disable if you need to). A record rep
clause does seem a good way to go, but there are probably others.

> Next morning I tried to implement the solution and couldn't find the Ada
> equivalent of C's bit-wise & operater.  According to my "Ada as a 2nd
> language" book, the Ada reserved word "AND" only works for boolean types,
> not integer types.  I got the impression that it was up to the programmer
> to write his own bitwise ANDs/ORs/XORs, etc (it wouldn't be hard).

It also works for modular integer types (Ada95 only) and *arrays* of booleans
(which can be packed). Either one will do what you want. But if you also want
to work with the data as integers, its silly to do it this way, then have to
Unchecked_Convert all over the place. Let the record rep clause do the work
for you!

--
T.E.D.

Home - mailto:dennison@telepath.com  Work - mailto:dennison@ssd.fsi.com
WWW  - http://www.telepath.com/dennison/Ted/TED.html  ICQ  - 10545591





  parent reply	other threads:[~2000-10-25  4:50 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-25  3:50 First time Ada has let me down Shifty
2000-10-25  0:00 ` Ken Garlington
2000-10-25  0:00   ` Shifty
2000-10-26  4:00     ` Jeff Carter
2000-10-26 14:43       ` Ted Dennison
2000-10-26 17:55         ` tmoran
2000-10-26 17:12       ` Shifty
2000-10-27  1:00         ` Jeff Carter
2000-10-26 22:27       ` Guillaume
2000-10-26 21:49         ` Keith Thompson
2000-10-26 14:36     ` Ted Dennison
2000-10-26 17:55       ` tmoran
2000-10-26 23:08         ` Ted Dennison
2000-10-25  0:00 ` Larry Kilgallen
2000-10-25  0:00   ` Ted Dennison
2000-10-25  0:00     ` Larry Kilgallen
2000-10-25  0:00       ` Ted Dennison
2000-10-25  0:00 ` wv12
2000-10-25  0:00   ` Joel Seidman
2000-10-25  0:00   ` Gisle Sælensminde
2000-10-25  0:00   ` Gautier
2000-10-26  6:42   ` tmoran
2000-10-25  0:00 ` First time Ada has let me down (recipe) Guillaume
2000-10-26  2:45   ` Mats Weber
2000-10-25  4:44 ` First time Ada has let me down Julian Morrison
2000-10-25  4:50 ` Ted Dennison [this message]
2000-10-24  0:00   ` Keith Thompson
2000-10-26  0:00   ` Andreas Schulz
2000-10-26 18:05     ` Alejandro Villanueva
2000-10-26 21:46 ` Tucker Taft
replies disabled

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