Eksklusivt "eller"

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 1. april 2022; checks kræver 2 redigeringer .
Eksklusivt "eller"
Modulo 2 tilføjelse, XOR

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

Notation

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 .

Egenskaber

Boolean algebra

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 .

Programmering

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 .

Forholdet til naturligt sprog

I naturligt sprog svarer operationen "modulo addition" til to udtryk:

  1. "resultatet er sandt (lig med 1), hvis A ikke er lig med B (A≠B)";
  2. " hvis A ikke er lig med B (A≠B), så sand(1)".

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:

  1. sand hvis enten er sandt eller begge (" mindst en af ​​de to").
  2. sand, hvis eller er sand , men ikke begge (" kun en af ​​to").

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.

Quantum Computing

I kvantecomputere er analogen af ​​modulo 2-addition CNOT -porten .

Digital teknologi

Se også

Bemærk

  1. Shilo V.L. Populære digitale mikrokredsløb: Håndbog - M .: Radio og kommunikation, 1987. - 352 s. - (Masseradiobibliotek. Udgave 1111).

Eksterne links