Eksklusivt "eller" | |
---|---|
Modulo 2 tilføjelse, XOR | |
| |
sandhedstabel | |
logisk port | |
normale former | |
Disjunktiv | |
konjunktival | |
Zhegalkin polynomium | |
Medlemskab af prækompletterede klasser | |
Sparer 0 | Ja |
Sparer 1 | Ikke |
Monotone | Ikke |
lineær | Ja |
Selv-dual | Ikke |
Eksklusivt "eller" ( modulo 2 addition , XOR , strikt disjunktion , bitvis addition , maske inversion , Zhegalkin addition , logisk subtraktion , logisk disparitet ) - Boolesk funktion samt logisk og bitvis operation, i tilfælde af to variable er resultatet af operationen sandt, hvis og kun hvis et af argumenterne er sandt, og det andet er falsk. For en funktion af tre (ternær addition modulo 2) eller flere variable, vil resultatet af operationen kun være sandt, når antallet af argumenter lig med 1, der udgør det aktuelle sæt, er ulige. En sådan operation opstår naturligt i ringen af rester modulo 2 , deraf navnet på operationen.
Modulo 2-addition kaldes "eksklusiv eller" og "streng disjunktion" for at skelne den fra "almindelig" (ikke-eksklusiv) logisk "eller" - ikke-streng logisk disjunktion . I mængdeteori svarer additionsmodulo 2 til driften af den symmetriske forskel af to sæt.
Optagelse kan være præfiks (" polsk post ") - operationstegnet er placeret før operanderne, infix - operationstegnet er placeret mellem operanderne og postfix - operationstegnet er placeret efter operanderne. Når antallet af operander er mere end to, er præfiks- og postfiksnotationer mere økonomiske end infiksnotationer. Den mest almindelige notation er: ^ a ≠ b,
Unicode har symboler for modulo 2 addition: U+22BB ⊻ xor , U+2295 ⊕ cirklet plus og U+2A27 ⨧ plustegn med sænket to , U+2A52 ⩒ logisk eller med prik over , og et symbol for modulo sum 2: U +2A0A ⨊ modulo to sum .
I boolsk algebra er addition modulo 2 en funktion af to, tre eller flere variable (de er også operander af en operation, de er også argumenter for en funktion). Variabler kan tage værdier fra et sæt . Resultatet hører også til sættet . Resultatet beregnes efter en simpel regel, eller efter sandhedstabellen . I stedet for værdier kan et hvilket som helst andet par passende tegn bruges, for eksempel eller eller "false", "sand", men samtidig er det nødvendigt at definere forrang, for eksempel .
Sandhedstabeller:
0 | 0 | 0 |
0 | en | en |
en | 0 | en |
en | en | 0 |
Regel: resultatet er ens, hvis begge operander er ens; i alle andre tilfælde er resultatet .
0 | 0 | 0 | 0 |
0 | 0 | en | en |
0 | en | 0 | en |
0 | en | en | 0 |
en | 0 | 0 | en |
en | 0 | en | 0 |
en | en | 0 | 0 |
en | en | en | en |
Regel: resultatet er , hvis antallet af lige store operander er lige (nul er også et lige tal), ellers er resultatet .
I C / C++ , Java , C# , Ruby , PHP , JavaScript , Python osv., er den bitvise komplementoperation angivet med symbolet " ^ ", i Pascal , Delphi , Ada , Visual Basic med det reserverede ord xor , i assembly sprog - den logiske kommando af samme navn. I dette tilfælde udføres modulo 2-addition for alle bits i venstre og højre operand i par. For eksempel,
hvis
derefter
Den eksklusive "eller" -operation for værdier af en boolesk type (sand, falsk) udføres forskelligt på forskellige programmeringssprog. For eksempel bruger Delphi den indbyggede XOR-operator (eksempel: condition1 xor condition2 ). I C , siden C99-standarden , returnerer " ^ " -operatoren på booleske operander af typen resultatet af at anvende den logiske XOR-operation. I C++ returnerer " ^ " -operatoren for den boolske bool -type resultatet i henhold til de beskrevne regler, mens den for andre typer anvendes bitvis.
Brug af det bitvise eksklusive "eller" giver dig mulighed for at bytte værdierne af heltalsvariabler uden at bruge yderligere hukommelse .
I naturligt sprog svarer operationen "modulo addition" til to udtryk:
Ligheden mellem modulo 2-addition og "enten ... eller ..."-konstruktionen i naturligt sprog peges ofte på. Den sammensatte sætning "enten A eller B" er sand, når enten A eller B er sand/falsk, men ikke begge dele; ellers er den sammensatte erklæring falsk. Dette svarer nøjagtigt til definitionen af en operation i boolsk algebra, hvis "sand" er angivet med , og "falsk" med .
Denne operation sammenlignes ofte med disjunktion , fordi de er meget ens i egenskaber, og begge ligner foreningen "eller" i daglig tale. Sammenlign reglerne for disse operationer:
Operationen udelukker den sidste mulighed ("begge på én gang") og kaldes derfor eksklusiv "ELLER". Operationen inkluderer den sidste mulighed ("begge på én gang") og kaldes nogle gange et inkluderende "ELLER" af denne grund. Tvetydigheden i naturligt sprog er, at konjunktionen "eller" kan bruges i begge tilfælde.
I kvantecomputere er analogen af modulo 2-addition CNOT -porten .
booleske operationer | |
---|---|
|