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.
Gast

XNOR in Python?

Beitragvon Gast » Donnerstag 28. Oktober 2004, 13:21

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!
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 28. Oktober 2004, 13:52

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: Alles auswählen

#!/usr/bin/env python
import this
Gast

Beitragvon Gast » Donnerstag 28. Oktober 2004, 14:08

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
? :)
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 28. Oktober 2004, 15:02

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: Alles auswählen

#!/usr/bin/env python
import this

Wer ist online?

Mitglieder in diesem Forum: cedsoft