Bitoperationen werden ähnlich wie
numerische Operationen ausgeführt. Entweder mit der Anweisung:COMPUTE <x> = <bitexp>.
oder ohne das optionale Schlüsselwort COMPUTE mit der Anweisung:
<x> = <bitexp>.
Hierbei ist <bitexp> einer der folgenden Bitausdrücke:
Bitausdruck |
Bedeutung |
BIT-NOT <y> |
Negation |
<y> BIT-AND <z> |
Und |
<y> BIT-XOR <z> |
Exklusiv-Oder |
<y> BIT-OR <z> |
Oder |
Die Operanden <y> und <z> werden bitweise mit obigen Bitoperatoren verknüpft und das Ergebnis in das Ergebnisfeld <x> gestellt. Sowohl Ergebnisfeld <x> als auch die Operanden <y> und <z> müssen vom Typ X sein. Bei unterschiedlichen Feldlängen, werden alle Operanden auf die Feldlänge des Ergebnisfelds <x>
konvertiert.Für die bitweise Verknüpfung gelten folgende Regeln für die einzelnen Bitoperatoren:
<y> |
<z> |
BIT-NOT <y> |
<y> BIT-AND <z> |
<y> BIT-XOR <z> |
<y> BIT-XOR <z> |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
Bitausdrücke sind wie mathematische Ausdrücke durch Klammern schachtelbar.
DATA: hex1(1) TYPE x VALUE 'B5',
hex2(1) TYPE x VALUE '5B',
hex3(1) TYPE x.
hex3 = BIT-NOT ( hex1 BIT-XOR hex2 ).
WRITE hex3.
Die Listenausgabe ist:
11
Die Bitoperation verläuft wie in folgender Abbildung gezeigt: