Mengen und Bit-Operationen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

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.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 04.02.1999