*schlag* grin
Du hast noch was vergessen:

Wenn wir jetzt beispielsweise (1<<0) und (1<<3) haben, sind das ja dann 1 und 8. Binär also 0b0001 und 0b1000.
Wenn wir hier jetzt mit Plus rechnen, kommt 9 raus. Im Binären sieht das so aus:
0b0001 + 0b1000 = 0b1001
Man kann jetzt aber auch eine Bit-Verknüpfung mit Oder machen:
0b0001 | 0b1000 = 0b1001
Es ist das gleiche Ergebnis, aber nur bei Zahlen, die keine gemeinsamen Bitstellen haben.
Wenn man jetzt 9 und 3 nimmt, kommen folgende Ergebnisse raus:
0b1001 + 0b0011 = 0b1100 == 12
0b1001 | 0b0011 = 0b1011 == 11

In dem Fall ist es so, dass bei Plus wirklich addiert wird, aber bei der Verknüpfung die einzelnen Bits gesetzt(verknüpft) werden.
Dies geschieht nach folgendem Muster:

Eine Oder-Verknüfpung (|):

B1__B2__E
_0___0__0
_0___1__1
_1___0__1
_1___1__1

Eine Und-Verknüfung (&):

B1__B2__E
_0___0__0
_0___1__0
_1___0__0
_1___1__1

Man kann mit dem beiden Verknüpfungsarten entweder einzelne Bits setzen oder auch auslesen:

Setze Bit 1:
0b1000 | 0b0010 = 0b1010

Überprüfe, ob das Bit 2 gesetzt ist:
0b1010 & 0b0100 = 0b0000 Wert ist 0, Bit nicht gesetzt
0b1110 & 0b0100 = 0b0100 Wert ist 1, Bit gesetzt

So, hoffentlich ausreichend noch die Bitverknüpfungen erklärt


Visit my site: www.masterq32.de