Bit Manipilation !



  • Hi zusammen,

    ich habe gelesen daß man mit dem Bitoperator und (&) gezielt eine Auswahl von Bits löschen kann.
    Beispielsweise löscht :

    n = n & 0177;

    in n alle Bits außer der letzten Sieben.
    Aber wie bzw. warum nicht die letzte Sieben?

    Ich kenne die Wahrheitstabelle für AND :

    1 1 1
    1 0 0
    0 1 0
    0 0 0

    aber wie geht's jetzt logisch weiter mit dem löschen der Bits, könnt Ihr mir da weiterhelfen ?

    Gruß
    Questioneer



  • n       1 0 1 0 1 0 1 0
    & 0177  0 1 1 1 1 1 1 1
    =       0 0 1 0 1 0 1 0
    

    EDIT:
    Verschreiber, ist auch nicht so wichtig.



  • TyRoXx schrieb:

    1 & irgendwas ergibt 1

    naja, 1 & irgendwas ergibt irgendwas.
    🙂



  • Hi,

    wenn man annimmt daß n = 10101010 und die 0177 = 10110001 (binär) dann ergibt sich nach einer AND verknüpfung:

    n = 1 0 1 0 1 0 1 0
    0177 = 1 0 1 1 0 0 0 1
    --------------------------------
    1 0 1 0 0 0 0 0

    wo bleibt da irgendwas gleich???

    @TyRoXx

    Wie kommst Du drauf daß 0177 = 01111111 ist?

    Gruß
    Questioner



  • Questioneer schrieb:

    ...daß 0177 = 01111111 ist?

    wegen der 0 vorne dran ist es in C eine oktalzahl.
    🙂



  • 😞 AAAArrrrgggssss !!! 🙄 😡

    🕶
    Danke fricky 🙂 💡

    Gruß
    Questioneer


Log in to reply