Exkluzív "vagy"

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2022. április 1-jén felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .
Exkluzív "vagy"
Modulo 2 kiegészítés, XOR

Venn-diagram
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.

Jelölés

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 .

Tulajdonságok

Boole-algebra

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 .

Programozás

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 .

Kapcsolat a természetes nyelvvel

A természetes nyelvben a "modulo addíció" művelet két kifejezéssel egyenértékű:

  1. "az eredmény igaz (egyenlő 1-gyel) , ha A nem egyenlő B-vel (A≠B)";
  2. " ha A nem egyenlő B-vel (A≠B), akkor igaz(1)".

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:

  1. igaz, ha bármelyik igaz , vagy mindkettő (" legalább az egyik a kettő közül").
  2. igaz, ha vagy igaz , de nem mindkettő (" csak az egyik a kettőből").

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

Quantum Computing

A kvantumszámítógépekben a modulo 2 összeadás analógja a CNOT kapu .

Digitális technológia

Lásd még

Megjegyzés

  1. Shilo V.L. Népszerű digitális mikroáramkörök: Kézikönyv - M .: Rádió és kommunikáció, 1987. - 352 p. - (Tömegrádió könyvtára. 1111. szám).

Külső linkek