From: Stephen Leake <stephen_leake@acm.org>
Subject: Re: How do you bitwise operations in Ada '83 and '95
Date: Fri, 21 Jul 2006 05:58:18 -0400
Date: 2006-07-21T05:58:18-04:00 [thread overview]
Message-ID: <ur70fp9dx.fsf@acm.org> (raw)
In-Reply-To: 1e7szqc5niq0u$.1oqd2mhiiccyx.dlg@40tude.net
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> On Thu, 20 Jul 2006 05:03:23 -0400, Stephen Leake wrote:
>
>> Marius Amado-Alves <marius@amado-alves.info> writes:
>>
>>> Note that I don't do bit shifting. Instead I multiply or divide by a
>>> magnitude. I don't think bit shifting is portable.
>>
>> See LRM B.2, Interfaces.Shift_Left, Shift_Right, Rotate_Left, Rotate_Right.
>
> Hmm, it reads (Ada 95):
>
> "{shift} {rotate} For each such modular type in Interfaces, shifting and
> rotating subprograms as specified in the declaration of Interfaces above.
> These subprograms are Intrinsic. They operate on a bit-by-bit basis, using
> the binary representation of the value of the operands to yield a binary
> representation for the result."
>
> That looks non-portable to me.
>
> Here is my definition of "portable":
>
> Let T is a modular type Unsigned_n compiled on two different machines. For
> any valid X of T the result of Shift_Left (X, m) yields same numerical
> value on both machines.
>
> I don't know if that was overlooked or that was an intent of language
> designers to get at the underlying machine representation. Probably the
> latter. I'm not a language lawyer, though.
I'm missing something here. Assuming machines A and B both have
Unsigned_16, please show me an Ada statement that produces
different results on the two machines.
I can see shift/rotate is non-portable if machine B doesn't have
Unsigned_16, but otherwise I don't see the problem.
Hmm. I suppose if machine A is one's complement, and machine B is
two's compliment? No, the Unsigned bit representation is still the
same; that's why these operations are not defined on signed types.
--
-- Stephe
next prev parent reply other threads:[~2006-07-21 9:58 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <9315684D-C216-4EDA-8852-0A6BD4C275B0@amado-alves.info>
2006-07-19 22:30 ` How do you bitwise operations in Ada '83 and '95 Marius Amado-Alves
2006-07-20 7:40 ` Georg Bauhaus
2006-07-20 9:29 ` Colin Paul Gloster
2006-07-20 12:31 ` Georg Bauhaus
2006-07-20 13:08 ` Colin Paul Gloster
2006-07-20 13:29 ` Marius Amado-Alves
2006-07-20 13:49 ` Georg Bauhaus
2006-07-21 5:23 ` Colin Paul Gloster
2006-07-21 8:00 ` Georg Bauhaus
2006-07-20 9:03 ` Stephen Leake
2006-07-20 9:38 ` Marius Amado-Alves
2006-07-21 9:53 ` Stephen Leake
2006-07-20 11:31 ` Dmitry A. Kazakov
2006-07-20 13:18 ` Marius Amado-Alves
2006-07-21 9:58 ` Stephen Leake [this message]
2006-07-21 12:09 ` Dmitry A. Kazakov
2006-07-21 19:03 ` Simon Wright
2006-07-22 8:32 ` Dmitry A. Kazakov
2006-07-22 8:57 ` Simon Wright
2006-07-22 10:52 ` Georg Bauhaus
2006-07-22 13:31 ` Dmitry A. Kazakov
[not found] <CD6E3BB8-52D2-4EED-A790-0184FE56A99A@amado-alves.info>
2006-07-20 20:41 ` Marius Amado-Alves
2006-07-20 23:13 ` Randy Brukardt
2006-07-21 5:38 ` Marius Amado-Alves
2006-07-21 22:09 ` Randy Brukardt
[not found] <BFF12262-F906-4F9A-B867-D0373609F038@amado-alves.info>
2006-07-20 16:40 ` Marius Amado-Alves
2006-07-20 9:39 Fwd: " Marius Amado-Alves
2006-07-20 17:54 ` tmoran
2006-07-20 18:30 ` Marius Amado-Alves
2006-07-20 19:36 ` tmoran
2006-07-20 22:09 ` Simon Wright
2006-07-21 10:07 ` Stephen Leake
2006-07-21 19:09 ` Simon Wright
2006-07-21 19:45 ` tmoran
2006-07-23 15:59 ` Stephen Leake
2006-07-24 6:08 ` Simon Wright
[not found] <1153244316.853254.291560@m79g2000cwm.googlegroups.com>
2006-07-18 18:45 ` Robert A Duff
2006-07-18 18:53 ` jimmaureenrogers
2006-07-18 19:22 ` Jeffrey R. Carter
2006-07-18 21:32 ` jimmaureenrogers
2006-07-19 0:40 ` Jeffrey R. Carter
2006-07-19 3:55 ` jimmaureenrogers
2006-07-19 4:37 ` Jeffrey R. Carter
2006-07-19 13:05 ` jimmaureenrogers
2006-07-19 19:43 ` Jeffrey R. Carter
[not found] ` <1153313832.389434.144930@s13g2000cwa.googlegroups.com>
2006-07-19 13:55 ` Georg Bauhaus
2006-07-19 14:20 ` Robert A Duff
2006-07-19 19:30 ` Jeffrey R. Carter
2006-07-19 14:41 ` Robert A Duff
2006-07-18 19:21 ` Jeffrey R. Carter
2006-07-19 3:01 ` 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