&-Operator
-
Hallo,
Ich wollte gerne wissen, was der &-Operator für das Beispiel "1&2" macht?
lg
Triton90
-
Das ist das Logische Und.
Du kannst 1 und 3 binär darstellen.
1: 0001
3: 0011Man geht nun Stelle für Stelle durch und vergleicht die beiden Zahlen. Sind beide Zeichen 1, so wird eine 1 geschrieben, sonst 0.
Beispiele:
Bei 0001 & 0011 = 0001 (1 & 3 = 1 in der Dezimalschreibweise).
Bei 0101 & 0110 = 0100, (5 & 6 = 4 in der Dezimalschreibweise).
-
also bedeutet dies:
0101 ( 5)
&1010 (10)
_____
=1111 (15)oder?
-
Nein,
0101 (5)
&1010 (10)
_____
=0000 (0)Du kannst es dir auch so überlegen: Du musst die i-te Stelle der ersten Zahl mit der i-ten Stelle der zweiten Zahl multiplizieren.
Du rechnest also zahl_1[i]*zahl_2[i], wobei zahl_1[i] die i-te Stelle der zahl_1 bedeutet.Für das obere Beispiel rechnest du also (0101 = zahl_1 und 1010 = zahl_2):
zahl_1[0] * zahl_2[0] = 1 * 0 = 0
zahl_1[1] * zahl_2[1] = 0 * 1 = 0
zahl_1[2] * zahl_2[2] = 1 * 0 = 0
zahl_1[3] * zahl_2[3] = 0 * 1 = 0*Edit
Du kannst dir mal den Wikipedia Artiel über den Bitweisen Operator anschauen. Da hats Beispiele.
-
Triton90 schrieb:
also bedeutet dies:
0101 ( 5)
&1010 (10)
_____
=1111 (15)oder?
Nein.
A UND B bedeutet nicht alle Bits von A UND alle Bits von B zu nehmen, sondern alle Bits zu nehmen, die in A UND in B gesetzt sind. Man kommt von der Wortbedeutung von UND also nicht drauf, welche Interpretation richtig ist.
Und es war hier gerade mal die andere.