XNOR in Python?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gast

Hallo,

gibts in Python auch einen XNOR-Operator oder eine XNOR-Funktion? XOR geht ja mit "^" :)

Hab schon not (zahl1 ^ zahl2) getestet, funktioniert aber nicht :?:

Wär echt toll wenn einer von euch Profis mir weiterhelfen könnte!
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi Gast,

XNOR kannst du erhalten indem du das Ergebnis der XOR Verknüpfung negierst

~(zahl1 ^ zahl2)

Hier wirst Du aber immer eine Negative Zahl herausbekommen, du kannst aber die Anzahl der bits die du brauchst mit & ausmaskieren.

~(zahl1 ^ zahl2) & ((1<<bits)-1)


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Gast

Hi Dookie,

danke für die schnelle Antwort! Nur das mit dem Shift versteh ich nicht..
Was is der unterschied zwischen
~(zahl1 ^ zahl2) & ((1<<bits)-1)
und
~(zahl1 ^ zahl2) / -1
? :)
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

hehe das kommt noch aus meinen alten Assemblerzeiten auf dem C64 und dem Amiga.
Mit dem Shift und dem And kannst Du genau die Anzahl der Bits bestimmen. Bei 4 Bits z.B.

Code: Alles auswählen

>>> ~(3 ^ 5)/-1
Out[22]: 7

>>> ~(3 ^ 5) & ((1<<4)-1)
Out[23]: 9
werden alle Bits berücksichtigt was zum korrekten Ergebnis 9 bei der berechnung 3 XNOR 5 führt 0011(3) XOR 0101(5) ergibt 1001(9) und nicht 0111(7)


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Antworten