[Python] If integer & integer - Bedeutung?

  • Python

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Infinity.

    [Python] If integer & integer - Bedeutung?

    Hi,
    ich habe einen Quelltext in Python vorliegen, dieser enthält unter anderem diese If Abfrage:

    Quellcode

    1. if fmt & (1<<(i+10)) :
    2. fmt ^= g << i

    g, fmt und i sind Ganzzahlen.

    Die Frage ist jetzt, was diese If Bedingung ergibt, bzw. wann da True und wann False raus kommt.
    Bei dem Code steht
    The & operator performs a bitwise and.

    Also gehe ich davon aus das wir fmt mit der Zahl nach dem Operator (1<<(i+101) verknüpfen.
    Daraus ergibt sich ein Ergebniss. Die If Abfrage würde nun lauten

    Quellcode

    1. if ergebniss :
    2. (....)


    Das ergibt für mich keinen Sinn, da die Variable nicht verglichen wird....
    Kann mir jemand da weiter helfen?
    Danke schonmal

    //EDIT:
    Habe es jetzt in vb.net geändert. Es führt die Anweisung nur aus, wenn das Ergebnis nicht 0 ist

    VB.NET-Quellcode

    1. Dim test As Integer = fmt And (1 << (i + 10))
    2. If test Then

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „12nico07“ ()

    Die Bedingung wird wahr, wenn die Zahl in binärer Darstellung an der Stelle i + 10 (von rechts) die Ziffer 1 hat.
    Der VB Code ist nicht ganz korrekt, da ja in VB nicht "<> 0" geprüft wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Infinity“ ()