Hallo Wolfgang,
> Was mich etwas wundert: Es gibt eine BITOR()- und eine BITAND()-
> Funktion
Stimmt; an die hab ich gar nicht gedacht.
> aber das "BITNOT()" muss man sich über das Komplement selber
> basteln...
Ein 'BITNOT(Zahl)' ist nix anderes als 'BITXOR(Zahl;0)' (0 xor 0 = 1,
und 1 xor 0 = 0).
Da hast du allerdings recht. Aber s.u.:
Das bringt aber trotzdem nicht wirklich viel, wenn der Wert als String
vorliegt (was ziemlich wahrscheinlich ist, da es meines Wissens keine
Möglichkeit gibt, eine Zahl /direkt/ in Hexadezimal- oder Binärform
darzustellen). Einen String muss man tortzdem zuerst in eine Zahl und
nachher wieder zurück verwandeln:
Ich gebe häufig Mathe-Nachhilfe und dabei geht es gelegentlich auch um
Zahlensysteme und (Rechen-)Logik.
Der "klassische" Start ist die Erklärung von NOT, AND und OR. Im
weiteren Verlauf nutze ich gerne mal eine Tabellenkalkulation ein.
Dabei arbeite ich bei diesem Thema zweizeilig: Oben die Binärzahlen als
Text, unten die Dezimalwerte.
Es ist dann leicht störend, dass ich nicht mit den zuerst eingeführten
Funktionen arbeiten kann, sondern für NOT entweder über das Komplement,
oder (wie du vorgeschlagen hast) über XOR gehen muss.
In diesem Zusammenhang wäre auch eine BITNAND-Funktion ganz nützlich,
um zu zeigen, dass man sogar die drei Grundfunktionen auf eine einzige
zurückführen kann.
Gruß,
Michael