Zoeken op website

G-Fact 19 (logische en bitsgewijze niet-operatoren op Boolean)


Booleaanse operatoren vormen de basis van logica in de informatica. Ze worden gebruikt om logische en bitsgewijze bewerkingen op binaire gegevens uit te voeren. In Python wordt de logische not-operator gebruikt om een Booleaanse expressie te ontkennen, terwijl de bitsgewijze not-operator wordt gebruikt om de bits in een getal om te keren. In deze blogpost onderzoeken we de logische en bitsgewijze niet-operatoren op booleans in Python.

Operanden en waarheidstabel

De Booleaanse operatoren in Python zijn 'en', 'of' en 'niet'. De operator "en" geeft het resultaat True als beide operanden True en False anders zijn. De operator "of" geeft het resultaat True als ten minste één operand True is en anders False. In tegenstelling tot de waarheidswaarde van de operand levert de operator 'niet' het tegenovergestelde resultaat op.

Hier is de waarheidstabel voor de operatoren "en" en "of" −

Operand 1

Operand 2

"and"

"or"

True

True

True

True

True

False

False

True

False

True

False

True

False

False

False

False

De operator "niet" heeft slechts één operand en de waarheidstabel is als volgt −

True

Onwaar</p>

False

Waar</p>

Algoritme

De logische not-operator retourneert het tegenovergestelde van een Booleaanse expressie. Als de uitdrukking waar is, retourneren we false. Als de uitdrukking onwaar is, is het resultaat waar. Het algoritme voor de logische not-operator is als volgt −

  • Evalueer de Booleaanse expressie.

  • Als de expressie waar is, retourneert u false.

  • Als de expressie onwaar is, retourneert u waar.

De bitsgewijze niet-operator retourneert het complement van een getal. Het keert alle bits in het getal om, zodat elke 0 1 wordt en elke 1 0. Het algoritme voor de bitsgewijze niet-operator is als volgt −

  • Converteer het getal naar binair.

  • Draai alle bits om.

  • Converteer het resulterende binaire getal terug naar decimaal.

Voorbeeld 1: Logisch, niet Operator

x = True
y = not x
print(y)

Uitvoer

False

Voorbeeld 2: Bitwise, niet Operator

x = 5  # Decimal 5 is binary 101
y = ~x  # Invert all bits, result is binary -110 (2's complement of 101)
print(y)

Uitvoer

-6 

In het eerste voorbeeld gebruiken we de logische not-operator om de Booleaanse waarde van x te ontkennen. Het resultaat is onwaar omdat x waar is. In het tweede voorbeeld gebruiken we de bitwise not-operator om de bits in het getal 5 om te keren. Het resultaat is -6 omdat de omgekeerde binaire waarde (-110) wordt geïnterpreteerd als een 2-complementgetal.

Voorbeeld 3: Logisch en Bitwise, geen Operators

x = 7  # Decimal 7 is binary 111
y = not x  # Invert boolean value of x, result is false because x is not zero
z = ~x  # Invert all bits in x, result is binary -1000 (2's complement of 111)
w = not(z > 0)  # Is z greater than 0? Invert boolean result, result is true because z is negative
print(y, z, w) 

Uitvoer

False -8 True

In dit voorbeeld beginnen we met het toekennen van de decimale waarde 7 aan de variabele x. Vervolgens gebruiken we de logische not-operator om de Booleaanse waarde van x om te keren. Het resultaat is onwaar omdat x niet nul is. Vervolgens gebruiken we de bitwise not-operator om alle bits in x om te keren. Het resultaat is binair -1000 (2's complement van 111). Ten slotte gebruiken we de logische not-operator om het Booleaanse resultaat van de vergelijking z > 0 om te keren. Omdat z negatief is, is het resultaat waar.

Toepassingen

De logische en bitsgewijze niet-operatoren kunnen in een verscheidenheid aan toepassingen worden gebruikt. Hier zijn een paar voorbeelden −

Booleaanse algebra - De logische not-operator wordt in de Booleaanse algebra gebruikt om de waarheidswaarde van een bewering om te keren. Dit is handig bij logisch redeneren en wiskundige bewijzen.

Gegevensmanipulatie - De bitwise not-operator kan worden gebruikt om de bits in een binair getal om te draaien. Dit is handig bij het manipuleren en coderen van gegevens.

Beveiliging − De bitwise not-operator kan in cryptografie worden gebruikt om uit een wachtwoord een sleutel te genereren. Door de bits in het wachtwoord om te keren, is de resulterende sleutel veel moeilijker te raden.

Foutcontrole - De bitwise not-operator kan worden gebruikt in algoritmen voor foutcontrole, zoals die worden gebruikt in netwerkprotocollen. Door alle bits in een bericht om te keren, kunnen fouten worden opgespoord en gecorrigeerd.

Conclusie

De logische en bitsgewijze niet-operatoren zijn belangrijke hulpmiddelen bij het programmeren in Python. Ze stellen ons in staat Booleaanse uitdrukkingen om te keren en de bits in binaire getallen om te draaien. Deze operatoren kunnen in een verscheidenheid aan toepassingen worden gebruikt, van Booleaanse algebra tot cryptografie. Door te begrijpen hoe deze operators werken, kunnen we efficiëntere en veiligere code schrijven.

Gerelateerde artikelen: