Exkluzív "vagy" | |
---|---|
Modulo 2 kiegészítés, XOR | |
| |
igazságtáblázat | |
logikai kapu | |
normál formák | |
Szétválasztó | |
kötőhártya | |
Zhegalkin polinom | |
Tagság az előre befejezett osztályokban | |
0-t takarít meg | Igen |
Megment 1 | Nem |
Monoton | Nem |
lineáris | Igen |
Önkettős | Nem |
Az exkluzív "or" ( modulo 2 összeadás , XOR , szigorú diszjunkció , bitenkénti összeadás , maszk inverzió , Zhegalkin összeadás , logikai kivonás , logikai eltérés ) egy logikai függvény , valamint egy logikai és bitművelet , két változó esetén, a művelet eredménye akkor és csak akkor igaz, ha az egyik argumentum igaz, a másik pedig hamis. Három (háromszoros modulo 2) vagy több változó függvénye esetén a művelet eredménye csak akkor lesz igaz, ha az aktuális halmazt alkotó 1-gyel egyenlő argumentumok száma páratlan. Egy ilyen művelet természetesen előfordul a modulo 2 maradékok gyűrűjében , innen a művelet neve.
A Modulo 2 összeadását „kizárólagos vagy”-nak és „szigorú diszjunkciónak” nevezik, hogy megkülönböztessük a „hétköznapi” (nem kizárólagos) logikai „vagy” – nem szigorú logikai diszjunkciótól . A halmazelméletben az összeadás modulo 2 megfelel két halmaz szimmetrikus különbségének működésének.
A rögzítés lehet előtag (" lengyel rekord ") - a műveleti jel az operandusok elé kerül, infix - a műveleti jel az operandusok és az utótag közé kerül - a műveleti jel az operandusok után kerül elhelyezésre. Ha az operandusok száma kettőnél több, az elő- és utótag jelölések gazdaságosabbak, mint az infix jelölések. A leggyakoribb jelölés: ^ a ≠ b,
A Unicode szimbólumokkal rendelkezik a modulo 2 összeadásához: U +22BB ⊻ xor , U+2295 ⊕ bekarikázott plusz és U+2A27 ⨧ pluszjel kettős alsó indexszel , U+2A52 ⩒ logikai vagy pont felett , valamint a modulo összeg 2 szimbóluma: U +2A0A ⨊ modulo két összeg .
A Boole-algebrában a modulo 2 összeadás két, három vagy több változó függvénye (ezek egy művelet operandusai is, egy függvény argumentumai is). A változók értéket vehetnek fel egy halmazból . Az eredmény is a halmazhoz tartozik . Az eredményt egy egyszerű szabály vagy az igazságtáblázat alapján számítjuk ki . Az értékek helyett bármilyen más megfelelő karakterpár használható, például vagy vagy „hamis”, „igaz”, ugyanakkor meg kell határozni az elsőbbséget, például, .
Igazságtáblázatok:
0 | 0 | 0 |
0 | egy | egy |
egy | 0 | egy |
egy | egy | 0 |
Szabály: az eredmény egyenlő , ha mindkét operandus egyenlő; minden más esetben az eredmény .
0 | 0 | 0 | 0 |
0 | 0 | egy | egy |
0 | egy | 0 | egy |
0 | egy | egy | 0 |
egy | 0 | 0 | egy |
egy | 0 | egy | 0 |
egy | egy | 0 | 0 |
egy | egy | egy | egy |
Szabály: az eredmény , ha az egyenlő operandusok száma páros (nulla is páros), ellenkező esetben az eredmény .
C / C++ , Java , C# , Ruby , PHP , JavaScript , Python stb. nyelvekben a bitenkénti komplementműveletet a " ^ " szimbólum jelöli, Pascal , Delphi , Ada és Visual Basic esetén a fenntartott xor szó , összeállításban nyelv - az azonos nevű logikai parancs. Ebben az esetben a modulo 2 összeadás a bal és jobb oldali operandus összes bitjére páronként kerül végrehajtásra. Például,
ha
akkor
A logikai típusú értékek (igaz, hamis) kizárólagos „vagy” művelete a különböző programozási nyelvekben eltérően történik. Például a Delphi a beépített XOR operátort használja (példa: feltétel1 xor feltétel2 ). A C nyelvben a C99 szabvány óta a logikai típusú operandusok " ^ " operátora a logikai XOR művelet alkalmazásának eredményét adja vissza. A C++ -ban a bool logikai típusnál a “ ^ ” operátor a leírt szabályok szerint adja vissza az eredményt, míg más típusoknál bitenként alkalmazza.
A bitenkénti exkluzív "vagy" használata lehetővé teszi az egész változók értékeinek felcserélését további memória használata nélkül .
A természetes nyelvben a "modulo addíció" művelet két kifejezéssel egyenértékű:
Gyakran felhívják a figyelmet a modulo 2 összeadás és a természetes nyelv "vagy ... vagy ..." konstrukciója közötti hasonlóságra. Az „A vagy B” összetett állítás igaz, ha A vagy B igaz/hamis, de mindkettő nem; ellenkező esetben az összetett állítás hamis. Ez pontosan megfelel egy művelet Boole-algebra definíciójának, ha az "igaz" -ot jelöli , a "hamis" pedig a -val .
Ezt a műveletet gyakran a diszjunkcióhoz hasonlítják, mert nagyon hasonló tulajdonságokkal rendelkeznek, és mindkettő hasonló a mindennapi beszéd "vagy" uniójához. Hasonlítsa össze az alábbi műveletek szabályait:
A művelet kizárja az utolsó opciót ("egyszerre"), ezért kizárólagos "VAGY"-nak nevezik. A művelet tartalmazza az utolsó opciót ("egyszerre"), és emiatt néha "VAGY"-nak nevezik. A természetes nyelvben az a kétértelműség , hogy a „vagy” kötőszó mindkét esetben használható.
A kvantumszámítógépekben a modulo 2 összeadás analógja a CNOT kapu .
Boole-műveletek | |
---|---|
|