EXOR

Aus C64-Wiki
Wechseln zu: Navigation, Suche
EXOR
Format: a = EXOR(<z1>,<z2>)
Parameter
z1: Zahl (0..65535)
z2: Zahl (0..65535)
Einordnung
Typ: numerische Funktion
Kontext: Zahlen
Aufgabe: zwei Zahlen bitweise Exklusiv-Oder verknüpfen
Abkürzung: keine
Verwandte Befehle
DIV - MOD

Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort EXOR.

Mit dieser numerischen Funktion werden zwei beliebige vorzeichenlose Ganzzahlen (0..65535) bitweise Exklusiv-Oder verknüpft (ein gesetztes Bit in einer Zahl kehrt das entsprechende Bit in der anderen Zahl um).

Beachte:

  • Alle Simons'-Basic- (und auch TSB-)Funktionen arbeiten nicht, wenn sie zweiter Parameter eines POKE-Befehls sind. Die Werte müssen vor ihrer Verwendung bei POKE einer Variablen zugewiesen werden.
  • Die Argumente dürfen dabei als Ganzzahl aufgefasst (implizite Umwandlung mit der INT-Funktion) nur im Bereich von 0 bis 65535 liegen, andernfalls meldet der Interpreter die Fehlermeldung ?ILLEGAL QUANTITY ERROR.


Beispiele[Bearbeiten]

10 INPUT "POSITIVE ZAHL"; Z
20 A = EXOR(Z,255)
30 PRINT "DIE ZAHL" Z "EOR-VERKNUEPFT MIT 255 ERGIBT" A

Welche Zahl ergibt sich bei Umkehrung (Invertierung) der untersten acht Bit einer anderen Zahl?


Der WAIT-Befehl

100 WAIT ADDRESS,MASK,FLIP
nachprogrammiert:
100 IF (EXOR(PEEK(ADDRESS),FLIP) AND MASK) = 0 GOTO 100
EXOR dient als Funktion zum "Umdrehen" von Bits, hier: Die Bits in FLIP drehen die korrespondierenden Bits der ausgelesenen Speicherstelle um.

Weblinks[Bearbeiten]

WP-W11.png Wikipedia: XOR