Element logic excluzând sau. Operatori logici Operațiunea logică VBA, cu excepția sau

Adesea, pentru a demonstra capacitățile limitate ale perceptronilor cu un singur strat la rezolvarea problemelor, acesta este recurs la luarea în considerare a așa-numitei probleme. Xor - exclusiv sau.

Esența sarcinii este următoarea după cum urmează. Funcția logică Xor exclude sau. Această funcție este din două argumente, fiecare dintre acestea putând fi zero sau unitate. Este nevoie de o valoare atunci când unul dintre argumente este egal cu unul, dar nu atât, altfel. Problema poate fi ilustrată utilizând un singur sistem cu un singur strat cu două intrări prezentate în figura de mai jos.

Denumiți o contribuție, iar cealaltă prin, atunci toate combinațiile lor posibile vor fi formate din patru puncte în avion. Tabelul de mai jos prezintă legătura necesară între intrări și ieșire, unde combinațiile de intrare care ar trebui să dea o ieșire zero sunt etichetate și, o singură ieșire - și.

Puncte Valoare Valoare Ieșire necesară
0 0 0
1 0 1
0 1 1
1 1 0

Un neuron cu două intrări poate forma o suprafață decisivă sub forma unei linii drepte arbitrare. Pentru ca rețeaua să implementeze funcția XOR, tabelul specificat mai sus, trebuie să poziționați direct, astfel încât punctele să fie pe o parte a dreptului, iar punctul este pe celălalt. A încercat să atragă o astfel de linie dreaptă în figura de mai jos, ne asigurăm că este imposibil. Aceasta înseamnă că indiferent de valorile sunt atribuite scalelor și pragului, o rețea neuronală cu un singur strat nu poate reproduce raportul dintre intrarea și ieșirea necesară pentru a reprezenta funcția XOR.

Cu toate acestea, funcția XOR este ușor formată dintr-o rețea cu două straturi și, în multe feluri. Luați în considerare una dintre aceste moduri. Actualizăm rețeaua din figură, adăugând un alt strat ascuns de neuroni:

Rețineți că această rețea este dată așa cum este, adică. Putem presupune că este deja instruit. Numerele de deasupra săgeților prezintă valorile scalelor sinaptice. Ca funcție de activare, vom aplica funcția unui singur salt cu un prag care are următoarea diagramă:

Apoi rezultatul funcționării unei astfel de rețele neuronale poate fi reprezentat ca tabelul următor:

Puncte Valoare Valoare Ieșire necesară
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Fiecare dintre cei doi neuroni ai primului strat formează o suprafață decisivă sub forma unei linii drepte arbitrare (împarte planul în două jumătăți de planuri), iar neuronul stratului de ieșire combină aceste două soluții, formând o suprafață decisivă în forma unei benzi formate din neuroni drepți paraleli ai primului strat:

Rețeaua neurală utilizată în acest articol pentru a rezolva sarcina XOR este primitivă și nu utilizează toate capabilitățile rețelelor cu mai multe straturi. Este evident că rețelele neuronale multistrat au o capacitate mai mare de reprezentare decât un singur strat, numai în cazul prezenței neliniarității. Și în această rețea se aplică o funcție de activare liniară de prag. O astfel de rețea nu poate fi instruită, de exemplu, prin aplicarea unui algoritm de distribuție invers.

Funcția efectuată de acestea este oarecum mai complicată decât în \u200b\u200bcazul unui element și a unui element sau. Toate intrările elementului exclud sau egale, dar niciuna dintre intrări nu poate bloca alte intrări prin setarea semnalului de ieșire la unitate sau la nivelul zero. Tabelul 4.1. Tank Adevăr. elemente bidirecționale de excludere sau
Conectați-vă 1. Conectați-vă 2. Ieșire
0 0 0
0 1 1
1 0 1
1 1 0


Smochin. 4.1.

Sub funcție, excluzând sau se referă la următoarele: Unitatea de la ieșire apare când este prezentă doar o intrare. Dacă unitățile de pe intrări sunt două sau mai multe sau dacă la toate intrările lui Zero, atunci ieșirea va fi zero. Tank Adevăr. Elementul de două ori este excluzând sau administrat în tabel. 4.1. Denumirile adoptate în circuitele interne și străine sunt prezentate în fig. 4.1. Inscripția pe desemnarea internă a elementului este excluderea sau "\u003d 1" doar indică faptul că situația se distinge atunci când una și o singură unitate se află pe intrări.

Elemente care exclude sau în seria standard un pic. Seria internă oferă chipsuri LP5 (patru elemente cu două axe cu ieșire 2C), LL3 și LP12, diferă de ieșirea LP5 OK. Funcția prea specifică este implementată de aceste elemente.

Din punctul de vedere al matematicii, elementul care exclude sau efectuează funcționarea așa-numitei sumare a modulului 2. Prin urmare, aceste elemente sunt numite și adiectele din modulul doi. După cum sa menționat deja în prelegerea anterioară, sumarea modulului 2 este un semn plus închis într-un cerc.

Principala utilizare a elementelor care exclud sau, direct următoarele tatistrații adevăruluiSe compune în compararea a două semnale de intrare. În cazul în care două unități sau două zero vin la intrări (semnale coincid), zero se formează la ieșire (vezi Tabelul 4.1). De obicei, cu această aplicație, un nivel permanent este furnizat la o intrare de element, cu care semnalul de schimbare a timpului vine la o altă intrare. Dar semnificativ mai des pentru compararea semnalelor și codurilor aplicați jetoane speciale comparatoare Codov.care vor fi discutate în următoarea prelegere.

Ca un modul adctor 2, elementul exclude sau utilizat în divizori paraleli și consecutivi pentru modulul 2, care servesc la calcularea controalelor ciclice. Dar aceste sisteme vor fi discutate în detaliu în prelegeri 14.15.

Utilizarea importantă a elementelor care exclude sau este un invertor gestionat (figura 4.2). În acest caz, unul dintre intrările elementului este utilizat ca manager și un semnal de informare vine la un alt element. Dacă unitatea este introdusă, atunci semnalul de intrare este inversat dacă zero nu este inversat. Cel mai adesea semnal de control Setați de un nivel constant prin definirea modului elementului, iar semnalul de informație este pulsat. Adică un element care exclude sau poate schimba polaritatea semnalului de intrare sau a frontului și poate să nu fie modificată în funcție de semnal de control.


Smochin. 4.2.

În cazul în care există două semnale ale aceleiași polarități (pozitive sau negative) și, în același timp, sosirea lor simultană este exclusă, elementul exclude sau poate fi utilizat pentru a amesteca aceste semnale (figura 4.3). Cu orice polaritate a semnalelor de intrare, semnalele de ieșire ale elementului vor fi pozitive. Cu semnale de intrare pozitive, elementul care exclude sau va funcționa ca element 2 și cu negativ, acesta va înlocui elementul 2I - nu. Astfel de înlocuiri pot fi utile în cazurile în care unele elemente care excludeau sau sunt lăsate în diagramă. Adevărat, ar trebui să fie în minte Întârzierea de distribuție Semnalul din element este excluzând sau, de obicei, oarecum mai mare (de aproximativ 1,5 ori) decât întârzierea în cele mai simple elemente și, și non, sau sau sau non.

BIT este o unitate minimă de măsurare a informațiilor, deoarece stochează una dintre cele două valori - 0 (fals) sau 1 (adevărat). Fals și adevărat tradus în minciuna rusă și, respectiv, adevărul. Aceasta este, o celulă de biți poate fi simultan numai într-o stare a celor două posibile. Permiteți-mi să vă reamintesc că cele două posibile stări ale celulei de cățea sunt egale - 1 și 0.
Există anumite operațiuni pentru manipulări cu biți. Aceste operațiuni sunt numite operațiuni logice sau booleene, numite după unul dintre matematicieni - George Bul (1815-1864), care a contribuit la dezvoltarea acestui domeniu de știință.
Toate aceste operațiuni pot fi aplicate pe orice bit, indiferent de care se potrivește - 0 (zero) sau 1 (unul). Mai jos sunt principalele operațiuni logice și exemple ale utilizării acestora.

Operațiunea logică și (și)

Desemnarea și: &

Operațiunea logică și se efectuează cu doi biți, să le numim A și B. Rezultatul operației logice și va fi egal cu 1, dacă A și B sunt egali cu 1, iar în toate celelalte cazuri (alte cazuri), rezultatul va fi egal cu 0. Ne uităm la tabelul adevăr al operațiunii logice și .

a (biți 1) b (bitul 2) a (bit 1) & b (bitul 2)
0 0 0
0 1 0
1 0 0
1 1 1

Operațiunea logică sau (sau)

Sau: |

Operație logică sau executată cu două biți (A și B). Rezultatul executării unei operații logice sau va fi 0 dacă A și B sunt egale cu 0 (zero) și în toate celelalte cazuri (alte cazuri), rezultatul este 1 (unitate). Ne uităm la tabelul adevăr al operațiunii logice sau.

a (biți 1) b (bitul 2) a (bitul 1) | B (bitul 2)
0 0 0
0 1 1
1 0 1
1 1 1

Operațiunea logică cu excepția sau (Xor).

Desemnarea Xor: ^
Operația logică exclude sau executată cu două biți (A și B). Rezultatul unei operațiuni logice XOR va fi egal cu 1 (unitate), dacă unul dintre biții A sau B este 1 (unitate), în toate celelalte cazuri, rezultatul este 0 (zero). Ne uităm la tabelul adevăr al operațiunii logice, cu excepția sau.

a (biți 1) b (bitul 2) a (bitul 1) ^ B (bitul 2)
0 0 0
0 1 1
1 0 1
1 1 0

Operațiunea logică nu (nu)

Notație nu: ~
Operația logică nu este efectuată cu un pic. Rezultatul executării acestei operațiuni logice depinde în mod direct de starea bitului. Dacă bitul a fost într-o stare zero, rezultatul executării nu va fi egal cu unul și viceversa. Ne uităm la tabelul adevăr al operațiunii logice.

a (biți 1) ~ A (negare de biți)
0 1
1 0

Amintiți-vă aceste 4 operații logice. Folosind aceste operații logice, putem obține orice posibil rezultat. Detalii despre utilizarea operațiunilor logice în C ++ Citiți.

În acest articol vom vorbi despre unele operațiuni de biți. Luați în considerare cele principale: Xor (cu excepția sau) și (și), nu (nu), precum și (sau).

După cum se știe, unitatea minimă de măsurare a informațiilor este piccare stochează una dintre cele 2 valori: 0 ( Fals, minciuni) sau 1 ( Adevărat., adevăr). Astfel, celula de biți poate fi simultan numai într-una din cele două posibile stări.

Pentru manipulări cu biți, sunt utilizate anumite operațiuni - logică sau booleană. Ele pot fi aplicate oricărui bit, indiferent de valoarea sa zero sau o unitate. Ei bine, să ne uităm la exemplele de utilizare a trei operații logice de bază.

Operațiunea logică și (și)

Și. denotă semnul și.

Operatorul este efectuat cu 2 biți, luăm, de exemplu, A și B. Rezultatul funcționării funcționării și este egal cu 1, dacă A și B sunt egali cu 1. În alte cazuri, rezultatul este 0. De exemplu, cu ajutorul și puteți afla, un număr de sine sau nu.

Uită-te la tabelul adevărului și:

Operațiunea logică sau (sau)

Denotă semnul | .

Operator Sau. De asemenea, efectuate cu 2 biți (A și B). Rezultatul este 0, dacă A și B sunt egale cu 0, altfel este egal cu 1. Ne uităm la masa adevărului.

Operațiunea logică Xor (cu excepția sau)

Declarația XOR este denumită ^.

Xor. Efectuate cu 2 biți (A și B). Rezultatul funcționării operațiunii XOR ( excluzând sau) Egal cu 1, atunci când unul dintre biți B sau A este 1. În alte situații, rezultatul utilizării unei instrucțiuni XOR este 0.

Tabelul adevăr al operațiunii logice pentru Xor (cu excepția sau) arată astfel:

Folosind XOR (exclusiv sau), puteți schimba valorile de 2 tipuri de date identice variabile, fără a utiliza o variabilă temporară. Și, de asemenea, de Xor, puteți cripta text, de exemplu:

String Msg \u003d "Acesta este un mesaj"; Char message \u003d msg.tocararray (); String cheie \u003d ". *)"; String criptedstring \u003d șir nou (); pentru (int i \u003d 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Sunt de acord, Xor este departe de cea mai fiabilă metodă de criptare, dar acest lucru nu înseamnă că nu poate fi făcut parte dintr-un algoritm de criptare.

Nu funcționarea logică (nu)

Este o negare a lotului, deci este efectuată cu un pic și este notată ~.

Rezultatul depinde de starea bitului. Dacă se află într-o stare zero, rezultatul operațiunii este o unitate și invers. Totul este extrem de simplu.

Aceste 4 operații logice ar trebui să fie amintite în primul rând, deoarece cu ajutorul lor puteți obține aproape orice rezultat posibil. Există, de asemenea, operațiuni, cum ar fi<< (побитовый сдвиг влево) и >\u003e (trecere bitwise spre dreapta).

Comanda XOR din asamblare efectuează o excepție sau între toți biții de două operanzi. Rezultatul operațiunii XOR este înregistrat în primul operand. Sintaxă:

Xor receptor, sursă

Declarația xor scade întotdeauna cf și, precum și (în funcție de rezultat) modifică steagurile SF, ZF și PF. Valoarea steagului AF poate fi oricare - nu depinde de rezultatul operațiunii.

Receptorul poate fi unul dintre următoarele:

  • Zona de memorie (MEM)

Sursa poate fi una dintre următoarele:

  • Zona de memorie (MEM)
  • Registrul general (REG)
  • Valoarea directă - Constantă (IMM)

Având în vedere restricțiile descrise mai sus, combinația dintre receptorul sursă poate fi după cum urmează:

Reg, MEM MEM, REG REG, Reg, IMM REG, IMM

Funcționarea excluderii sau

La executarea unei valori exclusive sau de valoare, aceasta va fi egală cu 1 dacă biții sunt comparați (nu egali). Dacă biții comparați sunt aceeași valoare, rezultatul va fi egal cu 0.

Prin urmare, această operațiune este numită exclusivă. Elimină aceleași biți de comparație și cu operațiuni inegale de operațiuni.

Dar, deoarece orice pereche de biți inegali este 0 și 1, atunci funcționarea logică sau ca rezultat va da 1.

Tatac de adevăr de excludere sau

Tabelul Adevărului este mai jos:

0 xor 0 \u003d 0 xor 1 = 1 1 Xor 0 \u003d. 1 1 Xor. 1 = 0

Caracteristicile operațiunii XOR

Operațiunea XOR are o proprietate de reversibilitate. Dacă efectuați de două ori cu același operand de două ori, atunci valoarea valorii este inversată. Adică dacă îndepliniți această operațiune între biți X. și Y., în cele din urmă primim valoarea lotului inițial H..

0 Xor. 0 \u003d 0 xor. 0 = 0 0 Xor. 1 \u003d 1 xor. 1 = 0 1 Xor. 0 \u003d 1 xor. 0 = 1 1 Xor. 1 \u003d 0 xor. 1 = 1

Această proprietate poate fi utilizată, de exemplu, pentru cea mai simplă criptare de date (acest lucru este într-un fel altul).

Verificarea steagului după operația XOR

Comanda XOR funcționează cu operațiuni de 8, 16 și 32 de biți.

Uneori este nevoie să verificați steagul PF după efectuarea operațiunii, pentru a afla câte biți de unități (chiar ciudat) sunt conținute bay Junior. Rezultat (acest lucru este necesar nu numai dacă se efectuează operația XOR, dar și atunci când efectuați alte operații aritmetice și logice).

Dacă steagul este instalat, atunci rezultatul este un număr clar de biți singuri. În caz contrar, steagul va fi resetat.

De asemenea, puteți verifica pur și simplu orice număr, fără a schimba valoarea rezultatului. Pentru a face acest lucru, trebuie să executați comanda XOR cu valoare zero. Adică, receptorul trebuie să fie un număr verificabil, iar sursa ar trebui să fie zero. Și apoi trebuie să verificați steagul credinței. Exemplu:

Al, 10110101b; locul în alternativ cu un număr ciudat; numărul de biți singuri (5) xor al, 0; în același timp, pavilionul PF nu este; set (po) mov al, 10110111b; locul în al număr cu un cititor; numărul de biți singuri (6) xor al, 0; în acest caz, pavilionul PF; va fi setat (PE)

În depanare, este de obicei folosit pentru a desemna un număr de unități în rezultatul rezultat, iar paritatea chiar reducere este utilizată și pentru Odd - PO (paritate ciudată).

Gata în cuvinte de 16 biți

După cum sa menționat deja, steagul de credință este stabilit în funcție de numărul de unități conținute în rezultatele mai tinere. Pentru a verifica cititorul de operand de 16 biți, trebuie să executați comanda XOR între senior și cel mai tânăr octet al acestui număr:

MOV AX, 64C1H; 0110 0100 1100 0001 - 6 biți singuri Xor ah, Al; Steagul de pregătire va fi instalat

Într-o modalitate atât de simplă, operandul pe 16 biți este împărțit în doi octeți (2 grupe de 8 biți), iar atunci când execută comanda XOR, biți singuri care se află în evacuările corespunzătoare a două operande pe 8 biți nu vor fi luate în considerare cont. Deoarece bitul corespunzător rezultatului este zero.

Comanda XOR elimină orice biți de unitate intersectată de două operanzi pe 8 biți din rezultat și adaugă biți unici invers la rezultat. Adică, disponibilitatea numărului de 8 biți primită de noi va fi aceeași cu pregătirea numărului original de 16 biți.

0110 0100 1100 0001 - Numărul sursă pe 16 biți 0 Xor. 1 = 1 1 Xor. 1 = 0 1 Xor. 0 = 1 0 Xor. 0 = 0 0 Xor. 0 = 0 1 Xor. 0 = 1 0 Xor. 0 = 0 0 Xor. 1 = 1

Ca rezultat, 4 unități, adică pavilionul PF va fi instalat

Gata în cuvinte duale de 32 de biți

Ei bine, dacă aveți nevoie pentru a determina disponibilitatea într-un număr de 32 de biți?

Apoi, numărul este împărțit în patru octeți și este alternativ cu acești octeți, se efectuează o operație sau.

De exemplu, am rupt un număr de 32 de biți B. Patru octet B0., B1., B2., B3.Unde B0. - Este un octet mai tânăr.

Apoi, pentru a determina disponibilitatea numărului în Va trebui să folosim următoarea formulă:

B0 XOR B1 XOR B2 XOR B3

Dar în asamblare, o astfel de înregistrare este inacceptabilă. Prin urmare, trebuie să vă gândiți puțin.

Și în cele din urmă, originea mnemonicii Xor.. Există un cuvânt e în limba engleză X.ception - excepție. Reducerea din acest cuvânt este scrisoarea H. (Așa a fost necesar). Probabil ați întâlnit astfel de publicitate sau în numele produselor ale căror producători pretind (bine sau cred că această afirmație) la exclusivitate. De exemplu, Lada Xray, Sony Xperia, etc. Astfel încât xor este o abreviere colectată din două cuvinte - e X.ceeata Sau. - excluzând sau.