Yksinomainen "tai"

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 1. huhtikuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .
Yksinomainen "tai"
Modulo 2 lisäys, XOR

Venn kaavio
totuustaulukko
logiikka portti
normaaleja muotoja
Disjunktiivinen
sidekalvo
Zhegalkinin polynomi
Jäsenyys valmiilla luokilla
Säästää 0 Joo
Säästää 1 Ei
Yksitoikkoinen Ei
lineaarinen Joo
Itsenäinen kaksinkertainen Ei

Yksinomainen "tai" ( modulo 2 -lisäys , XOR , tiukka disjunktio , bittikohtainen lisäys , maskin inversio , Zhegalkin-lisäys , looginen vähennyslasku , looginen ero ) - Boolen funktio sekä looginen ja bittikohtainen toiminta, kun kyseessä on kaksi muuttujaa, operaation tulos on tosi jos ja vain jos toinen argumenteista on tosi ja toinen epätosi. Kolmen muuttujan funktiolle (kolmiomainen yhteenlaskettu modulo 2) tai useamman muuttujan funktion tulos on tosi vain, kun nykyisen joukon muodostavien argumenttien lukumäärä yhtä suuri kuin 1 on pariton. Sellainen operaatio syntyy luonnollisesti jäännösrenkaassa modulo 2 , josta tulee operaation nimi.

Modulo 2 -lisäystä kutsutaan "eksklusiiviseksi tai" ja "tiukkaksi disjunktioksi" sen erottamiseksi "tavallisesta" (ei-poissulkevasta) loogisesta "tai" - ei-tiukka loogisesta disjunktiosta . Joukkoteoriassa summausmoduuli 2 vastaa kahden joukon symmetrisen eron toimintaa .

Merkintä

Tallennus voi olla etuliite (" Puolalainen tietue ") - operaatiomerkki sijoitetaan ennen operandia, infix  - operaatiomerkki sijoitetaan operandien ja jälkiliitteen väliin  - operaatiomerkki sijoitetaan operandien jälkeen. Kun operandien lukumäärä on enemmän kuin kaksi, etuliitteen ja jälkiliitteen merkinnät ovat taloudellisempia kuin infix-merkinnät. Yleisin merkintä on: ^ a ≠ b,

Unicodessa on symbolit modulo 2:n yhteenlaskulle: U+22BB xor , U+2295 ympyröity plus ja U+2A27 plusmerkki alaindeksillä kaksi , U+2A52 looginen tai pisteellä yläpuolella sekä symboli modulo summalle 2: U +2A0A modulo kaksi summa .

Ominaisuudet

Boolen algebra

Boolen algebrassa summaus modulo 2 on kahden, kolmen tai useamman muuttujan funktio (ne ovat myös operaation operandeja , ne ovat myös funktion argumentteja). Muuttujat voivat ottaa arvoja joukosta . Tulos kuuluu myös sarjaan . Tulos lasketaan yksinkertaisen säännön tai totuustaulukon mukaan . Arvojen sijasta voidaan käyttää mitä tahansa muuta sopivaa merkkiparia, esimerkiksi tai tai "false", "true", mutta samalla on tarpeen määrittää ensisijaisuus, esimerkiksi .

Totuustaulukot:

0 0 0
0 yksi yksi
yksi 0 yksi
yksi yksi 0

Sääntö: tulos on yhtä suuri , jos molemmat operandit ovat yhtä suuret; kaikissa muissa tapauksissa tulos on .

0 0 0 0
0 0 yksi yksi
0 yksi 0 yksi
0 yksi yksi 0
yksi 0 0 yksi
yksi 0 yksi 0
yksi yksi 0 0
yksi yksi yksi yksi

Sääntö: tulos on , jos yhtäsuurten operandien määrä on parillinen (nolla on myös parillinen luku), muuten tulos on .

Ohjelmointi

C / C++ , Java , C# , Ruby , PHP , JavaScript , Python jne. bittikohtaista komplementtitoimintoa merkitään symbolilla " ^ " , Pascalissa , Delphissä , Adassa , Visual Basicissa varattu  sana xor , kokoonpanossa kieli  - samanniminen looginen komento. Tässä tapauksessa modulo 2 -lisäys suoritetaan kaikille vasemman ja oikean operandin biteille pareittain. Esimerkiksi,

jos

sitten

Boolen tyyppisten arvojen (tosi, epätosi) yksinomainen "tai" -toiminto suoritetaan eri tavalla eri ohjelmointikielissä. Esimerkiksi Delphi käyttää sisäänrakennettua XOR-operaattoria (esimerkki: ehto1 xor ehto2 ) . C :ssä C99 -standardista lähtien loogisen tyyppisten operandien " ^ " -operaattori palauttaa loogisen XOR-operaation tuloksen. C++ : ssa bool - loogisen tyypin " ^ " -operaattori palauttaa tuloksen kuvattujen sääntöjen mukaisesti, kun taas muissa tyypeissä sitä käytetään bittikohtaisesti.

Bittikohtaisen yksinomaisen "tai":n avulla voit vaihtaa kokonaislukumuuttujien arvoja ilman lisämuistia .

Suhde luonnolliseen kieleen

Luonnollisessa kielessä operaatio "modulo additio" vastaa kahta lauseketta:

  1. "tulos on tosi (yhtä kuin 1) , jos A ei ole yhtä suuri kuin B (A≠B)";
  2. " jos A ei ole yhtä suuri kuin B (A≠B), niin tosi(1)".

Modulo 2 -lisäyksen ja luonnollisen kielen "joko ... tai ..." -konstruktin välinen samankaltaisuus tuodaan usein esiin. Yhdistelmälause "joko A tai B" on tosi, kun joko A tai B on tosi/epätosi, mutta ei molempia; muuten yhdistelmälause on väärä. Tämä vastaa täsmälleen Boolen algebran toiminnon määritelmää, jos "tosi" on merkitty symbolilla , ja "false" on merkitty .

Tätä operaatiota verrataan usein disjunktioon , koska ne ovat ominaisuuksiltaan hyvin samankaltaisia ​​ja molemmat ovat samanlaisia ​​​​kuin arkipuheen union "tai". Vertaa näiden toimintojen sääntöjä:

  1. tosi, jos jompikumpi on tosi tai molemmat ( " vähintään toinen kahdesta").
  2. tosi, jos tai on totta , mutta ei molempia (" vain toinen kahdesta").

Toiminto sulkee pois viimeisen vaihtoehdon ("molemmat kerralla"), ja tästä syystä sitä kutsutaan poissulkevaksi "OR". Toiminto sisältää viimeisen vaihtoehdon ("molemmat kerralla"), ja sitä kutsutaan joskus tästä syystä kattavaksi "TAI". Luonnollisen kielen moniselitteisyys on se, että konjunktiota "tai" voidaan käyttää molemmissa tapauksissa.

Kvanttilaskenta

Kvanttitietokoneissa modulo 2 -lisäyksen analogi on CNOT - portti .

Digitaalinen tekniikka

Katso myös

Huomautus

  1. Shilo V.L. Suositut digitaaliset mikropiirit: Käsikirja - M .: Radio ja viestintä, 1987. - 352 s. - (Massaradiokirjasto. Numero 1111).

Ulkoiset linkit