Logički element isključujući ili. Logički operateri VBA logički rad isključujući ili

Često, kako bi se pokazalo ograničene mogućnosti jednoslojnih perceptona prilikom rješavanja problema, pribjegava se razmatranju takozvanog problema. Xor - ekskluzivno ili.

Suština zadatka je biti sljedeća. Logička funkcija XOR isključuje ili. Ova funkcija je iz dva argumenta, od kojih svaka može biti nula ili jedinica. Potrebna je vrijednost kada je jedan od argumenata jednak jednom, ali ne i oba, u suprotnom. Problem se može prikazati pomoću jednoslojnog jednostepenog sustava s dva ulaza prikazana na donjoj slici.

Označite jedan ulaz kroz, a drugi kroz, tada će sve moguće kombinacije sastojati od četiri tačke u ravnini. Tablica u nastavku prikazuje potrebnu vezu između ulaza i izlaza, gdje su ulazne kombinacije koje bi trebale dati nultu izlaz, a, jedan izlaz - i.

Bodovi Vrijednost Vrijednost Potreban izlaz
0 0 0
1 0 1
0 1 1
1 1 0

Jedan neuron sa dva ulaza može formirati odlučujuću površinu u obliku proizvoljne ravne linije. Da bi mreža primijenila XOR funkciju, navedenu tablicu gore, morate postaviti direktno tako da bodovi budu na jednoj strani ravno, a poenta je na drugom. Pokušao sam izvući takvu pravu liniju na donjoj slici, osiguravamo da je nemoguće. To znači da se sve vrijednosti pripisuju vagama i pragu, jednoslojna neuronska mreža ne može reproducirati omjer između ulaza i izlaza potrebnog za predstavljanje funkcije XOR-a.

Međutim, funkcija XOR lako se formiraju dvoslojnom mrežom i na mnogo načina. Razmislite o jednom od ovih načina. Nagradili smo mrežu na slici, dodajući još jedan skriveni sloj neurona:

Imajte na umu da je ova mreža data kao što je to, I.E. Možemo pretpostaviti da je već obučeno. Brojevi iznad strelica prikazuju vrijednosti sinaptičkih vaga. Kao aktivacijsku funkciju primjenjit ćemo funkciju jednog skoka s pragom koji ima sljedeći grafikon:

Tada se rezultat rada takve neuronske mreže može predstavljati kao sljedeća tabela:

Bodovi Vrijednost Vrijednost Potreban izlaz
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Svaki od dva neurona prvog sloja formira odlučujuću površinu u obliku proizvoljne ravne linije (dijeli avion na dva poluvremena), a neuron izlaznog sloja kombinira ova dva rješenja koja čine odlučujuća površina u oblik trake koji formiraju paralelni ravni neuroni prvog sloja:

Neuralna mreža koja se koristi u ovom članku za rješavanje XOR zadatka je primitivna i ne koristi sve mogućnosti višeslojnih mreža. Očito je da višeslojne neuronske mreže imaju veći kapacitet za predstavljanje od jednostrukih, samo u slučaju prisutnosti nelinearnosti. A u ovoj mreži se primjenjuje funkcija linearne aktivacije praga. Takva mreža se ne može trenirati, na primjer, primjenom pogreške obrnuto algoritam distribucije.

Funkcija koju su izveli po njima je nešto složenija nego u slučaju predmeta i ili elementa ili. Svi unosi elemenata koji isključuju ili jednake, ali nijedan ulazi ne može blokirati druge ulaze postavljanjem izlaznog signala na jedinicu ili nultu razinu. Tabela 4.1. Istina tenk dvosmjerni elementi isključenja ili
Prijava 1. Prijava 2. Izlaz
0 0 0
0 1 1
1 0 1
1 1 0


Sl. 4.1.

Pod funkcijom, isključujući ili se odnosi na sljedeće: jedinica na izlazu pojavljuje se kada je prisutan samo jedan ulaz. Ako su jedinice na ulazima dvije ili više ili više, ili ako su u svim ulazima nula, tada će izlaz biti nula. Istina tenk Dvoimetan element isključuje ili daje u tablici. 4.1. Oznake usvojene u domaćim i stranim krugovima prikazane su na Sl. 4.1. Natpis na domaćoj oznaci elementa je isključujući ili "\u003d 1" samo ukazuje da se situacija odlikuje kada je jedna i samo jedna jedinica na ulazima.

Elementi bez ikice ili u standardnoj seriji malo. Domaća serija nudi LP5 čipove (četiri dvoosove elemente sa 2C izlazom), LL3 i LP12, razlikuju se od LP5 OK izlaza. Previše specifične funkcije implementira ovi elementi.

Sa stanovišta matematike, element isključuje ili obavlja rad takozvanog zbrajanja modula 2. Stoga se ovi elementi nazivaju i dodaci u modulu dva. Kao što je već napomenuto u prethodnom predavanju, sažetak modula 2 je plus znak zatvoren u krugu.

Glavna upotreba elemenata isključujući ili, direktno sljedeće tatasets istineSastoji se u poređenju dva ulaznih signala. U slučaju kada su dvije jedinice ili dva nula dolaze do ulaza (signali podudaraju se), nula se formira na izlazu (vidi tablicu 4.1). Obično, sa ovom aplikacijom, trajni nivo isporučuje se na jedan unos elementa, sa kojim se signal koji se mijenja vremenom dolazi do drugog unosa. Ali znatno češće za usporedbu signala i kodova primjenjuju posebne čipove komparatori Codovo čemu će se raspravljati u narednom predavanju.

Kao dodatak modul 2, element isključuje ili se koristi u paralelnim i uzastopnim djelistima za modul 2, koji služe za izračun cikličkih provjera. Ali ove sheme detaljno će se raspravljati u predavanjima 14.15.

Važna upotreba elemenata koji isključuju ili je upravljani pretvarač (Sl. 4.2). U ovom se slučaju jedan od unosa elemenata koristi kao menadžer, a informacijski signal dolazi u drugi element. Ako je jedinica unos, tada se ulazni signal obrnut ako nula nije obrnuta. Najčešće kontrolni signal Postavite konstantnom razinom definiranjem načina elementa, a signal informacija je pulzan. Odnosno element isključujući ili može promijeniti polaritet ulaznog signala ili sprijeda, a možda se ne smije mijenjati ovisno o tome kontrolni signal.


Sl. 4.2.

U slučaju kada postoje dva signala iste polariteta (pozitivna ili negativna), a istovremeno je isključen njihov istovremeni dolazak, element isključuje ili se može koristiti za miješanje ovih signala (Sl. 4.3). S bilo kojom polaritetom ulaznih signala, izlazni signali elementa bit će pozitivni. Pomoću pozitivnih ulaznih signala, element koji isključuje ili će raditi kao element 2, a s negativnim će se montirati element 2i - ne. Takve zamjene mogu biti korisne u slučajevima kada neki elementi isključuju ili su ostavljeni na dijagramu. TRUE, trebalo bi da se shvati na umu da odlaganje distribucije Signal u elementu isključuje ili obično nešto veće (oko 1,5 puta) od kašnjenja u najjednostavnijim elementima i i ne, ili ili ne.

Bit je minimalna jedinica mjerenja informacija, jer pohranjuje jednu od dvije vrijednosti - 0 (lažno) ili 1 (TRUE). Lažno i istinito prevedeno u rusku laž i istinu, respektivno. Odnosno, jedna bila može biti istovremeno samo u jednoj jedinoj jedinici dva. Dopustite da vas podsetim, dvije moguće stanja kučke su jednake - 1 i 0.
Postoje određene operacije za manipulacije sa bitovima. Te se operacije nazivaju logičkim ili boolejskim operacijama, nazvanim po jednom od matematičara - George Bul (1815-1864), koji je doprinio razvoju ovog područja nauke.
Sve se ove operacije mogu na bilo koji način primijeniti, bez obzira na to što se podudara - 0 (nula) ili 1 (jedan). Ispod su glavne logičke operacije i primjeri njihove upotrebe.

Logički rad i (i)

Oznaka i: \u200b\u200b&

Logički rad i izvodi se s dva bita, nazovimo ih a i b. Rezultat logičkog rada i bit će jednak 1, ako su A i B jednaki 1, a u svim ostalim) slučajevima, rezultat će biti jednak 0. Gledamo tablicu logičke operacije i .

a (bit 1) b (bit 2) a (bit 1) & b (bit 2)
0 0 0
0 1 0
1 0 0
1 1 1

Logički rad ili (ili)

Ili: |

Logički rad ili izveden sa dva bita (A i B). Rezultat izvršenja logičkog rada ili će biti 0 ako A i B jednaki 0 \u200b\u200b(nula), te u svim ostalim) slučajevima, rezultat je 1 (jedinica). Gledamo tanjurnu tablicu logičkog rada ili.

a (bit 1) b (bit 2) a (bit 1) | B (bit 2)
0 0 0
0 1 1
1 0 1
1 1 1

Logički rad isključujući ili (xor).

Oznaka XOR: ^
Logička operacija isključuje ili izvedene s dva bita (A i B). Rezultat rada XOR logike bit će jednak 1 (jedinicu), ako je jedan od bita A ili B 1 (jedinica), u svim ostalim slučajevima, rezultat je 0 (nula). Gledamo tablicu istine logičkog rada bez ili.

a (bit 1) b (bit 2) a (bit 1) ^ b (bit 2)
0 0 0
0 1 1
1 0 1
1 1 0

Logički rad ne (ne)

Noćenje ne: ~
Logička operacija se ne izvodi s jednim bit. Rezultat izvršenja ove logičke operacije direktno ovisi o stanju bita. Ako je bit bio u nulti stanju, rezultat ne izvršenja bit će jednak jednoj i obrnuto. Gledamo tablicu istine logičkog rada.

a (bit 1) ~ A (bitovi poricanje)
0 1
1 0

Zapamtite ove 4 logičke operacije. Koristeći ove logičke operacije možemo dobiti bilo koji mogući rezultat. Pojedinosti o korištenju logičkih operacija u C ++ Pročitajte.

U ovom ćemo članku razgovarati o nekim bitnim operacijama. Razmislite o glavnim: xor (isključujući ili) i (i), ne (ne) kao i (ili).

Kao što je poznato, minimalna jedinica mjerenja informacija je bitkoje pohranjuje jednu od 2 vrijednosti: 0 ( Lažan, laži) ili 1 ( Tačno., istina). Dakle, bitna ćelija može istovremeno biti samo u jednoj od dvije moguće države.

Za manipulacije sa bitovima se koriste određene operacije - logika ili boolean. Mogu se primijeniti na bilo koji bit, bez obzira na to koja je vrijednost nula ili jedinica. Pa, pogledajmo primjere korištenja tri osnovne logičke operacije.

Logički rad i (i)

I. označava znak i.

Operator se izvodi sa 2 bita, uzimamo, na primjer, a i b. Rezultat rada rada i jednak je 1, ako su A i B jednaki 1. U drugim slučajevima, rezultat je 0. Na primjer, uz pomoć i možete saznati, samo-broj ili ne.

Pogledajte tablicu istine i:

Logički rad ili (ili)

Označava znak | .

Operator Ili. Izvodi se i sa 2 bita (A i B). Rezultat je 0, ako su A i B jednaki 0, u protivnom je jednak 1. Gledamo tablicu istine.

Operacija logike XOR (isključujući ili)

XOR izjava je označena ^.

XOR. Izvedeno sa 2 bita (A i B). Rezultat rada XOR operacije ( isključujući ili) Jednaka 1, kada je jedan od bita B ili A je 1. u drugim situacijama, rezultat korištenja XOR izjave je 0.

Tabela istine logičkog rada za XOR (osim ili) izgleda ovako:

Korištenje XOR-a (ekskluzivno ili), možete promijeniti vrijednosti 2 varijable identičnog tipa podataka, bez korištenja privremene varijable. A takođe, od XOR-a možete šifrirati tekst, na primjer:

String msg \u003d "Ovo je poruka"; Char poruka \u003d \u200b\u200bmsg.tocararray (); String taster \u003d ". *)"; String encryptingstring \u003d novi niz (); za (int i \u003d 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Slažem se, Xor je daleko od najpouzdanije metode šifriranja, ali to ne znači da se ne može napraviti dio algoritma šifriranja.

Nije logičan rad (ne)

To je poricanje serije, pa se izvodi s jednim bit i označava se ~.

Rezultat ovisi o statusu bita. Ako je u nulti stanju, rezultat operacije je jedinica i obrnuto. Sve je izuzetno jednostavno.

Ove 4 logičke operacije trebaju se prije svega pamtiti, jer uz pomoć možete dobiti gotovo svaki mogući rezultat. Postoje i operacije kao što su<< (побитовый сдвиг влево) и >\u003e (poginuto se pomakne udesno).

Komanda xor u anteru vrši izuzetak ili između svih komada dva operanda. Rezultat XOR operacije zabilježen je u prvom operandu. Sintaksa:

XOR prijemnik, izvor

Izjava XOR-a uvijek ispušta CF i, kao i (ovisno o rezultatu) mijenja zastave SF, ZF i PF. Vrijednost AF zastave može biti bilo koja - ne ovisi o rezultatima operacije.

Prijemnik može biti jedan od sljedećih:

  • Područje memorije (MEM)

Izvor može biti jedan od sljedećih:

  • Područje memorije (MEM)
  • Registar opće namjene (reg)
  • Direktna vrijednost - konstanta (imx)

Uzimajući u obzir ograničenja koja su gore opisana, kombinacija izvornog prijemnika može biti sljedeći:

Reg, MEM MEM, reg reg, reg mem, IMM Reg, IMM

Rad isključenja ili

Prilikom izvršavanja ekskluzivne ili vrijednosti vrijednosti, bit će jednak 1 ako se bitovi uporedili (nije jednak). Ako su bitovi u poređenju iste vrijednosti, rezultat će biti jednak 0.

Stoga se ova operacija naziva ekskluzivnom. Eliminira iste bitove od poređenja i sa nejednakim operacijama.

Ali, budući da je bilo koji par nejednakih bita 0 i 1, tada će operacija logičkog ili kao rezultat dati 1.

Tatac istine isključenja ili

Tablica istine je u nastavku:

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

Značajke XOR operacije

XOR operacija ima nekretninu za obrljivost. Ako dvaput obavljate dva puta s istim operandom, tada je vrijednost vrijednosti obrnuta. To jest, ako ispunite ovu operaciju između bitova X. i Y., u konačnici dobivamo početnu vrijednost serijskog vrijednosti 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

Ova nekretnina može se koristiti, na primjer, za najjednostavniju enkripciju podataka (ovo je nekako drugo).

Provjera zastave nakon xorskog rada

XOR naredba radi sa 8-, 16 i 32-bitnim operacijama.

Ponekad postoji potreba za provjerom zastave PF-a nakon obavljanja operacije, kako bi se saznali koliko jediničnih bitova (čak i neparno) nalazi se u junior Bay Rezultat (to je neophodno ne samo ako se izvrši operacija XOR-a, ali i za obavljanje drugih aritmetičkih i logičkih operacija).

Ako je zastava instalirana, rezultat je jasan broj pojedinačnih bitova. U suprotnom, zastava će se resetirati.

Također možete jednostavno provjeriti bilo koji broj, bez promjene vrijednosti rezultata. Da biste to učinili, morate izvršiti XOR naredbu sa nultom vrijednošću. To jest, prijemnik mora biti provjerljiv broj, a izvor treba biti nula. A onda trebate provjeriti zastavu vjerovanja. Primjer:

Al, 10110101b; mjesto u Al broj s neparnim brojem; broj pojedinačnih bitova (5) xor al, 0; istovremeno, zastava PF nije; set (po) mov al, 10110111b; mjesto u al broj sa čitačem; broj pojedinačnih bitova (6) XOR al, 0; u ovom slučaju, zastava PF; bit će postavljena (PE)

U pogrešačima se obično koristi za označavanje broja jedinica u rezultirajućim rezultatom, a paritet se koristi i smanjenje, a za neparno - po (paritetno).

Spremni u 16-bitnim riječima

Kao što je već spomenuto, zastava vjerovanja postavlja se ovisno o broju jedinica sadržanih u mlađim rezultatima. Da biste provjerili 16-bitni čitač operanda, morate izvršiti XOR naredbu između seniorskog i najmlađeg bajta ovog broja:

Moon AX, 64C1H; 0110 0100 1100 0001 - 6 pojedinačnih bitova XOR Ah, Al; zastava spremnosti će biti instalirana

Na tako jednostavan način, 16-bitni operand podijeljen je u dva bajta (2 grupe od 8 bita), a prilikom izvršavanja XOR naredbe, pojedinačni bitovi koji su u odgovarajućim ispuštanjima dva 8-bitna operanda neće biti ulagali u Račun. Jer odgovarajući bit rezultata je nula.

Kmorova naredba uklanja bilo kakvo sredstvo za presijecanje od dva 8-bitnih operanda iz rezultata i dodaje obrnuto pojedinačne bitove na rezultat. Odnosno, spremnost 8-bitnog broja primljenog od nas bit će isti kao spremnost originalnog 16-bitnog broja.

0110 0100 1100 0001 - Izvor 16-bitni broj 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

Kao rezultat, 4 jedinice, odnosno instalirat će se PF zastava

Spremni u 32-bitnim dvostrukim riječima

Pa, ako trebate odrediti spremnost u 32-bitnom broju?

Tada je broj podijeljen u četiri bajta, a naizmjenično je s ovim bajtima, operacija se izvodi ili.

Na primjer, razbili smo 32-bitni broj B. Četiri bajta B0., B1., B2., B3.gde B0. - To je mlađi bajt.

Zatim će odrediti spremnost broja u mit će nam trebati sljedeću formulu:

B0 XOR B1 XOR B2 XOR B3

Ali u assedniku takav je takav zapis neprihvatljiv. Stoga morate malo razmišljati.

I na kraju, porijeklom mnemonika XOR.. Postoji riječ e na engleskom jeziku X.cepcija - izuzetak. Smanjenje iz ove riječi je slovo H. (Dakle, bilo je potrebno). Vjerovatno ste ispunili takvu u oglašavanju ili u imenima proizvoda čiji proizvođači tvrde (dobro ili misle da tvrde) ekskluzivnosti. Na primjer, Lada Xray, Sony Xperia itd. Dakle, Xor je skraćenica sakupljena iz dvije riječi - e X.cepcija Ili. - Isključujući ili.