Logisch vs bitweise

Was unterscheidet man zwischen logischen Operatoren and , und or bitweise analoge & , | Im Gebrauch? Gibt es einen Unterschied in der Effizienz in verschiedenen Lösungen?

  • Pythons Äquivalent von && (logisch-und) in einer if-Anweisung
  • Was ist ein Affenflecken?
  • Wie füge ich eine Klasse dynamisch hinzu?
  • Python-Affe-Patch private Funktion
  • Hinzufügen eines datetime-Stempels zu Python-Druck
  • Monkey patching eine Klasse in einem anderen Modul in Python
  • Wie erweitere ich die Klasseninstanz
  • 3 Solutions collect form web for “Logisch vs bitweise”

    Logische Operatoren arbeiten auf logischen Werten, während bitweise Operatoren auf Integer-Bits arbeiten. Hör auf, über Leistung nachzudenken und sie zu benutzen, für die sie gedacht sind.

     if x and y: # logical operation ... z = z & 0xFF # bitwise operation 

    Logische Operatoren werden für Booleans verwendet, da true 1 und false gleich 0 ist. Wenn Sie (binäre) Zahlen außer 1 und 0 verwenden, wird jede Zahl, die nicht null ist, eins.
    Ex: int x = 5; (101 in binär) int y = 0; (0 in binär) In diesem Fall würde das Drucken von x && y 0 drucken, weil 101 auf 1 geändert wurde und 0 auf Null gehalten wurde: Dies ist das gleiche wie das Drucken true && false , das false (0) zurückgibt.

    Auf der anderen Seite führen bitweise Operatoren eine Operation auf jedem einzelnen Bit der beiden Operanden aus (daher der Begriff "bitweise").
    Ex: int x = 5; int y = 8; int x = 5; int y = 8; Drucken x | y x | y (bitweise OR) würde das berechnen:
    00 0101 (5)
    | 1000 | 1000 (8)
    ———–
    = 1011 (11)
    Das heißt, es würde 11 drucken.

    Logische Operatoren sind diese:

     && || == ! 

    Sie erlauben es Ihnen, zB auf logischen Werten zu arbeiten:

     (true || false) // evaluates to true (!true) // evaluates to false 

    Bitweise Betreiber sind diese:

     & | ^ ~ 

    Sie erlauben es Ihnen, auf binären Bits zu arbeiten, wie folgt:

     ~011 = 100 0101 & 0011 = 0001 
    Python ist die beste Programmiersprache der Welt.