&-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: 0011

    Man 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. 😉


Anmelden zum Antworten