Logický prvek s výjimkou nebo. Logické operátory VBA Logická operace s výjimkou nebo

Často, aby se ukázaly omezené možnosti jednoprvrstevních perceptronů při řešení problémů, je uchýlen k úvahám tzv. Problém. XOR - exkluzivní nebo.

Podstatou úkolu je být následující. Logická funkce XOR vylučuje nebo. Tato funkce je ze dvou argumentů, z nichž každá může být nulová nebo jednotka. To vyžaduje hodnotu, když jeden z argumentů je roven jednomu, ale ne oba jinak. Problém může být znázorněn pomocí jednovrstvého jednovrstvého systému se dvěma vstupy zobrazenými na obrázku níže.

Označte jeden vstup přes, a druhý skrze, pak všechny jejich možné kombinace budou sestávat ze čtyř bodů v letadle. Níže uvedená tabulka zobrazuje požadovaný článek mezi vstupy a výstupem, kde jsou vstupní kombinace, které by měly poskytnout nulový výstup, jsou označeny a jediný výstup - a.

Body Hodnota Hodnota Požadovaný výstup
0 0 0
1 0 1
0 1 1
1 1 0

Jeden neuron se dvěma vstupy může tvořit rozhodující povrch ve formě libovolné přímky. Aby síť implementoval funkci XOR, zadaná výše uvedená tabulka, musíte umístit přímo tak, aby body byly na jedné straně roviny a bod je na straně druhé. Snažil se kreslit takovou přímku na obrázku níže, ujistíme se, že je nemožné. To znamená, že jakékoli hodnoty jsou přičítány v rozsahu a prahu, jednovrstvá neuronová síť není schopna reprodukovat poměr mezi vstupem a výstupem potřebným k reprezentaci funkce XOR.

Funkce XOR je však snadno tvořena dvouvrstvou síť a mnoha způsoby. Zvažte jeden z těchto cest. Upgradujeme síť na obrázku, přidáním jiné skryté vrstvy neuronů:

Tato síť je uvedena jako je, tj. Můžeme předpokládat, že je již vyškolen. Čísla nad šipkami ukazují hodnoty synaptických stupnic. Jako aktivační funkce použijeme funkci jednoho skoku s prahovou hodnotou s následujícím grafem:

Poté může být výsledek provozu takové neuronové sítě reprezentován jako následující tabulka:

Body Hodnota Hodnota Požadovaný výstup
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Každý ze dvou neuronů první vrstvy tvoří rozhodující povrch ve formě libovolné přímky (rozděluje rovinu na dvě poloviční roviny) a neuron výstupní vrstvy kombinuje tyto dvě roztoky, tvořící rozhodující povrch v Forma pásu vytvořeného paralelním přímým neuronem první vrstvy:

Neuronová síť používaná v tomto článku vyřešit úkol XOR je primitivní a nepoužívá všechny možnosti vícevrstvých sítí. Je zřejmé, že vícevrstvé neuronové sítě mají větší reprezentující kapacitu než jednovrstvé, pouze v případě přítomnosti nelinearity. A v této síti se použije prahová hodnota lineární aktivační funkce. Taková síť nemůže být vyškolena, například použitím chyby nepříjemně distribučního algoritmu.

Funkce, kterou provádí, je poněkud složitější než v případě položky a nebo prvku nebo. Všechny vstupy prvků s výjimkou nebo rovnou, ale žádný z vstupů nemůže blokovat další vstupy nastavením výstupního signálu na jednotku nebo nulovou úroveň. Tabulka 4.1. Tanková pravda obousměrné prvky vyloučení nebo
Přihlaste se 1. Přihlaste se 2. Výstup
0 0 0
0 1 1
1 0 1
1 1 0


Obr. 4.1.

Pod funkcí, s výjimkou nebo odkazuje na následující: jednotka na výstupu se zobrazí, když je přítomen pouze jeden vstup. Pokud jsou jednotky na vstupech dva nebo více, nebo pokud jsou na všech vstupech nuly, bude výstup nulový. Tanková pravda Dvoudenní prvek vylučuje nebo uvedený v tabulce. 4.1. Označení přijaté v domácích i zahraničních obvodech jsou znázorněny na OBR. 4.1. Nápis na domácím označení prvku je vyloučeno nebo "\u003d 1" pouze ukazuje, že se situace rozlišuje, když je na vstupech pouze jedna jednotka.

Prvky s výjimkou nebo ve standardní řadě trochu. Domácí série nabízí čipy LP5 (čtyři dvouosé prvky s 2c výstupem), LL3 a LP12 se liší od výstupu LP5 OK. Příliš specifická funkce je implementována těmito prvky.

Z hlediska matematiky, prvek s výjimkou nebo provádí provoz tzv. Sčítání modulu 2. Proto se tyto prvky nazývají také přídavky v modulu dva. Jak již bylo uvedeno v předchozí přednášce, sčítání modulu 2 je znaménko plus uzavřené v kruhu.

Hlavní použití prvků s výjimkou nebo přímo následující tatasety pravdySkládá se na porovnání dvou vstupních signálů. V případě, kdy se do vstupů dvě jednotky nebo dvě nuly přicházejí (signály se shodují), je na výstupu tvořena nula (viz tabulka 4.1). Obvykle, s touto aplikací je trvalá úroveň dodávána na jeden vstup prvku, se kterým se časově měnící signál přichází na jiný vstup. Ale podstatně častěji pro porovnání signálů a kódů aplikují speciální čipy komparátory Codov.který bude projednán v další přednášce.

Jako modul 2 adderu 2, prvek vylučuje nebo používají paralelně a po sobě jdoucí dělitele pro modul 2, který slouží k výpočtu cyklických kontrol. Tyto schémata však budou podrobně diskutovány v přednáškách 14.15.

Důležité použití prvků s výjimkou nebo je spravovaný měnič (obr. 4.2). V tomto případě se jako manažer používá jeden z prvních vstupů a informační signál přichází na jiný prvek. Pokud je jednotka vstup, vstupní signál je invertován, pokud nula není obrácen. Nejčastěji řídicí signál Nastavte konstantní úroveň definováním způsobu prvku a informační signál je pulzní. To znamená, že prvek s výjimkou nebo může změnit polaritu vstupního signálu nebo vpředu, a nemusí být změněn v závislosti na řídicí signál.


Obr. 4.2.

V případě, že existují dva signály stejné polarity (pozitivní nebo negativní), a zároveň je jejich simultánní příchod vyloučen, element je vyloučen nebo může být použit pro míchání těchto signálů (obr. 4.3). S jakoukoliv polaritou vstupních signálů budou výstupní signály prvku pozitivní. S pozitivním vstupním signálem, prvek s výjimkou nebo bude fungovat jako prvek 2, a s negativem nahradí prvek 2i - ne. Tyto nahrazení mohou být užitečné v případech, kdy některé prvky vylučující nebo zůstávají v diagramu. Je pravda, že je třeba mít na paměti distribuční zpoždění Signál v prvku vylučuje nebo obvykle poněkud větší (asi 1,5 násobek) než zpoždění v nejjednodušších prvcích a a non, nebo nebo non.

Bit je minimální jednotka měření informací, protože ukládá jeden ze dvou hodnot - 0 (false) nebo 1 (true). False a pravda přeložena do ruské lež a pravdy. To znamená, že jedna bitová buňka může být současně pouze v jednom stavu možných dvou. Dovolte mi, abych vám připomněli, dva možné stavy buňky fena jsou stejné - 1 a 0.
Existují určité operace pro manipulace s bity. Tyto operace se nazývají logické nebo boolské operace, pojmenované po jednom z matematiků - George Bul (1815-1864), což přispělo k rozvoji této oblasti vědy.
Všechny tyto operace lze aplikovat na libovolný bit, bez ohledu na to, které odpovídá - 0 (nula) nebo 1 (jeden). Níže jsou uvedeny hlavní logické operace a příklady jejich použití.

Logická operace a (a)

Označení a: &

Logická operace a je prováděna se dvěma kousky, pojďme jim zavolat a b. Výsledek logické operace a bude rovna 1, pokud A a B jsou rovny 1, a ve všech ostatních (dalších) případech bude výsledek roven 0. Díváme se na pravdivou tabulku logické operace a .

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

Logická operace nebo (nebo)

Nebo: |

Logická operace nebo provedená se dvěma bity (A a B). Výsledek provedení logické operace nebo bude 0, pokud A a B jsou rovny 0 (nula) a ve všech ostatních (dalších) případech, výsledek je 1 (jednotka). Díváme se na pravdivou tabulku logické operace nebo.

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

Logická operace s výjimkou nebo (XOR).

Označení XOR: ^
Logická operace vylučuje nebo provádí dvěma bity (A a B). Výsledek operace logiky XOR bude roven 1 (jednotku), pokud jeden z bitů A nebo B je 1 (jednotka), ve všech ostatních případech, výsledek je 0 (nula). Díváme se na pravdivou tabulku logické operace s výjimkou nebo.

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

Logická operace ne (ne)

Notace není: ~
Logická operace se neprovádí s jedním bitem. Výsledek provedení této logické operace přímo závisí na stavu bitu. Pokud byl bit v nulovém stavu, výsledek ne provedení bude roven jednomu a naopak. Díváme se na pravdivou tabulku logické operace.

a (bit 1) ~ A (bity popírání)
0 1
1 0

Pamatujte si tyto 4 logické operace. Pomocí těchto logických operací můžeme získat jakýkoliv možný výsledek. Detaily o používání logických operací v C ++ Přečtěte si.

V tomto článku budeme hovořit o některých bitových operacích. Zvažte hlavní: XOR (s výjimkou nebo) a (a), ne (ne), stejně jako nebo (nebo).

Jak je známo, minimální jednotka měření informací je bitkterý ukládá jeden z 2 hodnot: 0 ( Nepravdivé, lži) nebo 1 ( Skutečný., pravda). Bitová buňka tak může být současně pouze v jednom ze dvou možných stavů.

Pro manipulace s bity se používají určité operace - logika nebo boolean.. Mohou být aplikovány na něco, bez ohledu na to, co je jeho hodnota nulová nebo jednotka. Podívejme se na příklady použití tří základních logických operací.

Logická operace a (a)

A. označuje znamení &.

Provozovatel se provádí s 2 bity, bereme například A a b. Výsledek provozu provozu a je roven 1, pokud A a B jsou rovny 1. V jiných případech je výsledek 0. Například s pomocí a můžete zjistit, samoobsluhy nebo ne.

Podívejte se na pravdivý stůl a:

Logická operace nebo (nebo)

Označuje znamení | .

Operátor Nebo. Také provádí s 2 bity (A a B). Výsledkem je 0, pokud A a B jsou rovny 0, jinak se rovná 1. Díváme se na tabulku pravdy.

Logická operace XOR (kromě nebo)

Prohlášení XOR je označeno ^.

XOR. Provedeno s 2 bity (a a b). Výsledek operace operace XOR ( vyloučení OR.) Se rovná 1, když jeden z bitů b nebo A je 1. V jiných situacích je výsledek použití příkazu XOR 0.

Pravdový stůl logické operace pro XOR (kromě nebo) vypadá takto:

Pomocí XOR (exkluzivní nebo), můžete změnit hodnoty 2 variabilní identický typ dat bez použití dočasné proměnné. A také, XOR, můžete šifrovat text, například:

Řetězec msg \u003d "Toto je zpráva"; Char Message \u003d msg.tocarararray (); String klíč \u003d ". *)"; String EncryptedString \u003d nový řetězec (); pro (int i \u003d 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Souhlasím, Xor je daleko od nejspolehlivější metody šifrování, ale to neznamená, že nemůže být součástí šifrovacího algoritmu.

Ne logická operace (ne)

Jedná se o dávkové popření, proto se provádí s jedním bitem a je označena.

Výsledek závisí na stavu bitu. Pokud je v nulovém stavu, výsledkem operace je jednotka a naopak. Všechno je velmi jednoduché.

Tyto 4 logické operace by měly být pamatovány především, protože s jejich pomocí můžete získat téměř jakýkoli možný výsledek. Existují také operace, jako je například<< (побитовый сдвиг влево) и >\u003e (bitový posun doprava).

Příkaz XOR v assembleru provádí výjimku nebo mezi všemi bity dvou operandů. Výsledek operace XOR je zaznamenán v prvním operandu. Syntax:

XOR přijímač, zdroj

Prohlášení XOR vždy klesne CF a a (v závislosti na výsledku) mění příznaky SF, ZF a PF. Hodnota příznaku AF může být libovolná - nezávisí na výsledku operace.

Přijímač může být jedním z následujících možností:

  • Paměťová oblast (MEM)

Zdroj může být jedním z následujících možností:

  • Paměťová oblast (MEM)
  • Obecný účel registru (REG)
  • Přímá hodnota - konstanta (IMM)

S ohledem na omezení, která byla popsána výše, může být kombinace zdrojového přijímače následující:

Reg, MEM MEM, REG REG, REG MEM, IMP REG, IMP

Provoz s výjimkou nebo

Při provádění exkluzivní nebo hodnotové hodnoty se bude rovnat 1, pokud jsou bity porovnány (ne stejné). Pokud srovnávané bity jsou stejné hodnoty, výsledek bude roven 0.

Tato operace se proto nazývá exkluzivní. Eliminuje stejné bity z porovnání a s nerovným provozem operací.

Vzhledem k tomu, že jakýkoli pár nerovných bitů je 0 a 1, pak provoz logického nebo v důsledku toho poskytne 1.

Tatac pravdy vyloučení nebo

Tabulka pravdivá je níže:

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

Vlastnosti operace XOR

Operace XOR má vlastnost reverzibility. Pokud dvakrát provádíte dvakrát se stejným operandem, je hodnota hodnota invertována. To znamená, že pokud splnímete tuto operaci mezi bity X. a Y., nakonec dostaneme počáteční hodnotu dávku 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

Tato vlastnost může být použita například pro nejjednodušší šifrování dat (to je nějakým způsobem).

Kontrola příznaku Po operaci XOR

Příkaz XOR pracuje s 8-, 16 a 32bitovými operacemi.

Někdy je potřeba zkontrolovat vlajku PF po provedení operace, aby se zjistila, kolik jednotkových bitů (i lichých) je obsaženo v junior Bay. Výsledek (to je nezbytné nejen, pokud se provádí operace XOR, ale také při provádění dalších aritmetických a logických operací).

Pokud je vlajka nainstalována, výsledek je jasným počtem jednotlivých bitů. V opačném případě bude vlajka resetována.

Můžete také jednoduše ověřit libovolné číslo, aniž by změnil hodnotu výsledku. Chcete-li to provést, musíte provést příkaz XOR s nulovou hodnotou. To znamená, že přijímač musí být ověřitelným číslem a zdroj by měl být nulový. A pak musíte zkontrolovat vlajku víry. Příklad:

Al, 10110101b; místo v řadě s lichým; počet jednorázových bitů (5) XOR AL, 0; zároveň vlajka PF není; SET (PO) MOV Al, 10110111b; místo v Al. číslo s čtenářem; počet jediných bitů (6) XOR AL, 0; v tomto případě vlajka PF; bude nastaven (PE)

V debuggerů se obvykle používá k označení řady jednotek ve výsledném výsledku, a parita i redukce se používá a pro liché - PO (parita lichá).

Připraveno v 16bitových slovech

Jak již bylo zmíněno, vlajka víry je stanovena v závislosti na počtu jednotek obsažených v mladších výsledcích. Chcete-li zkontrolovat 16bitový operand Reader, musíte provést příkaz XOR mezi seniorem a nejmladším bajtem tohoto čísla:

MOV AX, 64C1H; 0110 0100 1100 0001 - 6 Jednorázové bity XOR AH, AL; Bude instalována vlajka připravenosti

Tak jednoduchým způsobem je 16bitový operand rozdělen do dvou bytů (2 skupiny 8 bitů) a při provádění příkazu XOR, jednotlivé bity, které jsou v odpovídajících vypouštěcích dvou 8-bitových operandů, nebudou do účet. Protože odpovídající bit výsledku je nula.

Příkaz XOR odstraní všechny protínající se bity dvou 8-bitových operandů z výsledku a do výsledku přidává nepřímo jednotné bity. To znamená, že připravenost 8-bitového čísla obdržené námi bude stejné jako připravenost původního 16bitového čísla.

0110 0100 1100 0001 - Zdroj 16-bitové číslo 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

Jako výsledek, 4 jednotky, to znamená, že PF vlajka bude instalována

Připraveno v 32bitové dvojitá slova

No, pokud potřebujete určit připravenost v 32bitovém čísle?

Pak je číslo rozděleno do čtyř bajtů, a to je střídavě s těmito bajty, provedení operace nebo.

Například jsme rozbili 32bitové číslo B. Čtyři bajt B0., B1., B2., B3.kde B0. - Je to mladší bajt.

Poté určit připravenost čísla budeme muset použít následující vzorec:

B0 XOR B1 XOR B2 XOR B3

Ale v assembleru je takový záznam nepřijatelný. Proto musíte trochu přemýšlet.

A konečně, původ mnics XOR.. V angličtině je slovo e X.výjimka. Snížení z tohoto slova je dopis H. (Takže bylo nutné). Pravděpodobně se setkali v reklamě nebo ve jménech produktů, jejichž výrobci tvrdí (dobře, nebo si myslí, že tvrzení) na exkluzivitu. Například Lada Xray, Sony Xperia atd. SO XOR je zkratka shromážděná ze dvou slov - e X.kytice Nebo. - s výjimkou nebo.