|
PROCEDURE And(a, b: CARDINAL) : CARDINAL; BEGIN RETURN CARDINAL(BITSET(a) * BITSET(b)) END And; PROCEDURE Or(a, b: CARDINAL) : CARDINAL; BEGIN RETURN CARDINAL(BITSET(a) + BITSET(b)) END Or; PROCEDURE Xor(a, b: CARDINAL) : CARDINAL; BEGIN RETURN CARDINAL(BITSET(a) / BITSET(b)) END Xor; |
Alle Mengen-Operationen entsprechen (in der Implementierung)
Bit-Operationen. Das liegt daran, daß jedem Element in einer
Menge genau ein Bit zugeordnet wird.
| |
Der Typ BITSET entspricht dem Typ
SET OF [0..31], falls CARDINAL
aus 32 Bits besteht. In jedem Fall ist BITSET genauso
groß wie CARDINAL oder INTEGER.
| |
Damit lassen sich sehr leicht Bit-Operationen für
CARDINAL durchführen, wenngleich die unseligen
Typfunktionen dabei verwendet werden müssen.
| |
Für Bit-Schiebe-Operationen empfiehlt sich die
Verwendung von DIV und MOD unter Verwendung
entsprechender Zweierpotenzen.
|
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 04.02.1999 |