Logikai elem kizárólagos vagy. VBA logikai operátorok logikai művelet kizárólagos vagy

Gyakran annak érdekében, hogy bemutassák az egyrétegű perceptronok korlátozott képességeit a problémák megoldásában, az úgynevezett probléma mérlegeléséhez folyamodnak XOR - exkluzív VAGY.

A feladat lényege a következő. Megkapja az XOR logikai függvényt - kizárólagos VAGY. Két argumentum függvénye, amelyek mindegyike lehet nulla vagy egy. Akkor ér el értéket, ha az egyik argumentum egy, de egyébként nem mindkettő. A problémát egy kétrétegű egyrétegű, egyneuronos rendszerrel szemléltethetjük, amelyet az alábbi ábra mutat.

Jelöljük ki az egyik bemenetet, a másikat pedig, akkor minden lehetséges kombinációjuk a sík négy pontjából áll. Az alábbi táblázat bemutatja a bemenetek és kimenetek közötti szükséges kapcsolatot, ahol a bemeneti kombinációkat, amelyeknek nulla kimenetet kell adniuk, a és az egy kimenetet a és a jelekkel jelölnek.

Pontok Érték Érték Kívánt kimenet
0 0 0
1 0 1
0 1 1
1 1 0

Egy két bemenettel rendelkező neuron döntési felületet képezhet tetszőleges egyenes formájában. Annak érdekében, hogy a hálózat megvalósítsa a fenti táblázatban megadott XOR függvényt, az egyeneset úgy kell elhelyeznie, hogy a pontok az egyenes egyik oldalán, a pontok pedig a másik oldalon legyenek. Miután megpróbáltunk ilyen egyenes vonalat húzni az alábbi ábrán, meggyőződésünk, hogy ez lehetetlen. Ez azt jelenti, hogy bármi is legyen a súlyokhoz és küszöbökhöz rendelt érték, az egyrétegű neuronhálózat nem képes reprodukálni az XOR függvény megjelenítéséhez szükséges bemeneti-kimeneti viszonyt.

Az XOR függvényt azonban kétrétegű hálózat könnyedén kialakíthatja, és sok szempontból. Vizsgáljuk meg ezen módszerek egyikét. Korszerűsítsük az ábra hálózatát egy újabb rejtett neuronréteg hozzáadásával:

Vegye figyelembe, hogy ezt a hálózatot úgy adják meg, ahogy van, azaz úgy tekinthető, hogy már kiképezték. A nyilak feletti számok a szinaptikus súlyokat mutatják. Aktiválási funkcióként egyetlen ugrásfüggvényt használunk egy küszöbértékkel, amelynek a következő grafikonja van:

Ekkor egy ilyen idegháló működésének eredménye a következő táblázat formájában ábrázolható:

Pontok Érték Érték Kívánt kimenet
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Az első réteg két neuronja döntő felületet képez tetszőleges egyenes formájában (a síkot két félsíkra osztja), és a kimeneti réteg neuronja egyesíti ezt a két megoldást, meghatározó felületet képezve a az első réteg idegsejtjeinek párhuzamos egyenesei által alkotott sáv alakja:

Az ebben a cikkben az XOR probléma megoldására használt neurális hálózat primitív, és nem használja ki teljes mértékben a többrétegű hálózatok előnyeit. Nyilvánvaló, hogy a többrétegű neurális hálózatok nagyobb reprezentációs erővel bírnak, mint az egyrétegűek, csak nemlinearitás esetén. És ebben a hálózatban egy küszöb lineáris aktiválási függvényt alkalmaznak. Egy ilyen hálózatot nem lehet betanítani, például a hibás szaporítási algoritmus használatával.

az általuk végzett funkció valamivel összetettebb, mint az AND elem vagy az OR elem esetében. Az XOR kapuk összes bemenete megegyezik, azonban egyik bemenet sem képes blokkolni más bemeneteket azáltal, hogy a kimeneti jelet egy vagy nulla szintre állítja. 4.1. Táblázat Igazság táblázat két bemenet exkluzív VAGY elemek
1. bejárat 2. bejárat Kimenet
0 0 0
0 1 1
1 0 1
1 1 0


Ábra. 4.1.

Az Exkluzív VAGY funkció a következőket jelenti: egy a kimeneten jelenik meg, ha csak egy bemenet egy. Ha kettő vagy több van a bemeneteknél, vagy ha az összes bemenet nulla, akkor a kimenet nulla lesz. Igazság táblázat két beviteli elem Az exkluzív VAG a táblázatban található. 4.1. A hazai és külföldi rendszereknél alkalmazott megnevezéseket az 1. ábra mutatja. 4.1. Az Exclusive OR elem "= 1" hazai megnevezésének felirata csak azt jelenti, hogy a helyzet akkor jelenik meg, amikor egy és csak egy egység van a bemeneteknél.

Kevés az Exclusive OR elem a standard sorozatban. A belföldi sorozatok LP5 mikrokapcsolatokat (négy kétbemenetes elemet 2C kimenettel), LL3 és LP12 kínálnak, amelyek OK kimenetben különböznek az LP5-től. Túl specifikus funkciót valósítanak meg ezek az elemek.

Matematikailag az XOR kapu hajtja végre az úgynevezett modulo 2 összeadást, ezért ezeket a kapukat modulo 2 összeadóknak is nevezzük. Amint az előző előadásban megjegyeztük, a 2 összegző modulust egy körbe zárt pluszjel jelöli.

Az XOR elemek fő felhasználása, amely közvetlenül következik igazságtáblák, két bemeneti jel összehasonlításából áll. Abban az esetben, ha két egy vagy két nulla érkezik a bemenetekre (a jelek egybeesnek), a kimeneten nulla képződik (lásd a 4.1. Táblázatot). Jellemzően ebben az alkalmazásban az elem egyik bemenetére állandó szintet alkalmaznak, amellyel összehasonlítják a másik bemenetre érkező időváltozó jelet. De sokkal gyakrabban speciális mikrokapcsolásokat alkalmaznak a jelek és kódok összehasonlítására. kódösszehasonlítók amelyről a következő előadás fog beszélni.

Összeadó modulo 2-ként az Exclusive OR elemet párhuzamos és szekvenciális modulo 2 osztókban is használják, amelyek ciklikus ellenőrző összegek kiszámítására szolgálnak. De ezeket a sémákat részletesen tárgyaljuk a 14,15.

Az Exclusive OR elemek fontos felhasználása a vezérelt inverter (4.2. Ábra). Ebben az esetben az elem egyik bemenetét használjuk vezérlésként, és egy információs jelet küldünk az elem másik bemenetére. Ha a vezérlő bemenet egy, akkor a bemeneti jel megfordul, ha nulla, akkor nem fordított. Leggyakrabban vezérlőjelállandó szint állítja be, meghatározva az elem működési módját, és az információs jel impulzus. Vagyis az Exclusive OR elem megváltoztathatja a bemenő jel vagy az él polaritását, vagy attól függően nem változhat vezérlőjel.


Ábra. 4.2.

Abban az esetben, ha két azonos polaritású jel van (pozitív vagy negatív), és egyidejű érkezésük kizárt, az Exclusive OR elem használható ezen jelek keverésére (4.3. Ábra). A bemeneti jelek bármely polaritása esetén az elem kimeneti jelei pozitívak lesznek. Pozitív bemeneti jelek esetén az Exclusive OR elem 2OR elemként fog működni, negatív bemenet esetén pedig a 2NAND elemet fogja helyettesíteni. Az ilyen helyettesítések hasznosak lehetnek olyan esetekben, amikor néhány Exclusive OR elem használaton kívül marad az áramkörben. Igaz, ezt szem előtt kell tartani terjedési késés az Exclusive OR elemben lévő jel általában valamivel több (kb. 1,5-szeres), mint a legegyszerűbb AND, AND, AND-NOT, OR, OR-NOT elemek késleltetése.

A bit az információ mennyiségének legkisebb mértékegysége, mivel a két érték egyikét tárolja - 0 (Hamis) vagy 1 (Igaz). Az oroszra fordított hamis és igaz hamis, illetve igaz. Vagyis egy bites cella egyszerre lehet a lehetséges kettőnek csak egy állapotában. Hadd emlékeztessem önöket arra, hogy a bitcella két lehetséges állapota egyenlő - 1 és 0.
Vannak bizonyos műveletek a bitek manipulálására. Ezeket a műveleteket logikai vagy logikai műveleteknek nevezzük, amelyeket az egyik matematikusról, George Boole-ról (1815-1864) neveztek el, aki hozzájárult e tudományterület fejlődéséhez.
Mindezek a műveletek bármely bitre alkalmazhatók, függetlenül attól, hogy értéke - 0 (nulla) vagy 1 (egy). Az alábbiakban bemutatjuk az alapvető logikai műveleteket és példákat azok használatára.

Logikai ÉS működés

ÉS jelölés: &

A logikai ÉS műveletet két bittel hajtjuk végre, nevezzük őket a és b-nek. A logikai ÉS művelet végrehajtásának eredménye egyenlő lesz 1-vel, ha a és b egyenlő 1-vel, és minden más (egyéb) esetben az eredmény 0-val lesz. Nézzük meg a logikai művelet igazságtábláját és .

a (1. bit) b (2. bit) a (1. bit) és b (2. bit)
0 0 0
0 1 0
1 0 0
1 1 1

Logikai VAGY (VAGY)

VAGY jelölés: |

A logikai VAGY műveletet két bittel (a és b) hajtják végre. A logikai VAGY művelet végrehajtásának eredménye egyenlő lesz 0-val, ha a és b egyenlő 0-val (nulla), és minden más (egyéb) esetben az eredmény megegyezik 1-vel (egy). Megnézzük a logikai VAGY művelet igazságtáblázatát.

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

Logikai művelet kizárólagos OR (XOR).

XOR jelölés: ^
Egy exkluzív VAGY logikai műveletet hajtanak végre két bittel (a és b). A logikai XOR művelet végrehajtásának eredménye 1 (egy) lesz, ha az a vagy b bitek egyike 1 (egy), az összes többi esetben az eredmény 0 (nulla). Megnézzük a kizárólagos VAGY logikai művelet igazságtáblázatát.

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

Logikai művelet NEM (nem)

NEM jelölés: ~
Egy logikai műveletet NEM hajtanak végre egy bittel. Ennek a logikai műveletnek az eredménye közvetlenül a bit állapotától függ. Ha a bit nulla állapotban volt, akkor a NOT végrehajtásának eredménye egyenlő lesz eggyel és fordítva. Megnézzük a logikai NEM művelet igazságtábláját.

a (1. bit) ~ a (bit tagadás)
0 1
1 0

Ne feledje ezt a 4 logikai műveletet. Ezekkel a logikai műveletekkel bármilyen lehetséges eredményt elérhetünk. További információ a logikai műveletek C ++ nyelven történő használatáról.

Ebben a cikkben néhány bitműveletről beszélünk. Vegyük figyelembe a legfontosabbakat: XOR (kizárólagos VAGY), ÉS (ÉS), NEM (NEM) és VAGY (VAGY).

Mint tudják, az információmérés minimális mértékegysége bit, amely a 2 érték egyikét tárolja: 0 ( Hamis, hamis) vagy 1 ( Igaz, igaz). Így egy kis cella csak két lehetséges állapot egyikében lehet egyszerre.

A bitek manipulálásához bizonyos műveleteket használnak - logikus vagy logikai... Bármely bitre alkalmazhatók, függetlenül attól, hogy nulla vagy egy. Nos, nézzük meg a három alapvető logikai művelet használatának példáit.

Logikai ÉS (és) működés

ÉS& jelöli.

Az AND operátort 2 bittel hajtják végre, vegyük például az a és b értékeket. Az AND eredménye 1, ha a és b értéke 1. Ellenkező esetben az eredmény 0. Például az ÉS segítségével megtudhatja, hogy egy szám páros-e vagy sem.

Nézze meg az ÉS művelet igazságtáblázatát:

Logikai VAGY művelet

Jel | | ...

Operátor VAGY 2 bitrel (a és b) is elvégezzük. Az eredmény 0, ha a és b értéke 0, különben pedig 1. Nézd meg az igazságtáblát.

Logikai XOR (kizárólagos VAGY)

Az XOR operátort ^ jelöli.

XOR 2 bittel (a és b) végrehajtva. Az XOR művelet eredménye ( kizárólagos VAGY) értéke 1, ha a b vagy a bit egyikének értéke 1. Ellenkező esetben az XOR operátor alkalmazásának eredménye 0.

Az XOR (kizárólagos VAGY) logikai műveletének igazságtáblázata így néz ki:

Az XOR (kizárólagos VAGY) használatával át lehet cserélni 2 azonos adattípusú változó értékét ideiglenes változó használata nélkül. Az XOR használatával titkosíthatja például a szöveget:

String msg = "Ez egy üzenet"; char üzenet = msg.toCharArray (); Karakterlánc = ". *)"; String encryptedString = új String (); mert (int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Egyetértek azzal, hogy az XOR messze nem a legmegbízhatóbb titkosítási módszer, de ez nem jelenti azt, hogy nem lehet egyetlen titkosítási algoritmus része.

Logikus NEM művelet

Ez bitenként tagadás, tehát egy bittel hajtják végre, és ~ -val jelölik.

Az eredmény a bit állapotától függ. Ha nulla állapotban van, akkor a művelet eredménye egy és fordítva. Minden rendkívül egyszerű.

Erre a 4 logikai műveletre elsősorban emlékezni kell, mert az ő segítségükkel szinte minden lehetséges eredményt elérhet. Vannak olyan műveletek is, mint<< (побитовый сдвиг влево) и >> (jobbra tolás).

Az XOR utasítás az Assemblerben exkluzív VAGY műveletet hajt végre két operandus minden bitje között. Az XOR művelet eredményét az első operandusra írjuk. Szintaxis:

XOR VEVŐ, FORRÁS

Az XOR utasítás mindig törli a CF-t és az OF-t, és (az eredménytől függően) megváltoztatja az SF, ZF és PF jelzőket is. Az AF zászló értéke bármi lehet - nem függ a művelet eredményétől.

A FOGADÓ lehet a következők egyike:

  • Memóriaterület (MEM)

A FORRÁS lehet a következők egyike:

  • Memóriaterület (MEM)
  • Általános célú nyilvántartás (REG)
  • Azonnali érték - állandó (IMM)

A fent leírt korlátozásokat figyelembe véve a SINTER-SOURCE kombinációk a következők lehetnek:

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

Exkluzív VAGY művelet

Exkluzív VAGY művelet végrehajtása esetén az eredmény 1 lesz, ha az összehasonlított bitek eltérnek (nem egyenlőek). Ha az összehasonlított bitek értéke azonos, akkor az eredmény 0 lesz.

Ezért ezt a műveletet kizárólagosnak nevezzük. Kizárja az azonos biteket az összehasonlításból, és egyenlőtlen műveletet hajt végre.

De mivel az egyenlőtlen bitek bármely párja 0 és 1, a logikai VAGY művelet 1-et eredményez.

Exkluzív VAGY Igazság táblázat

Az XOR igazságtáblázat az alábbiakban látható:

0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0

Az XOR működés jellemzői

Az XOR művelet visszafordítható. Ha kétszer hajtják végre ugyanazzal az operandussal, az eredmény értéke megfordul. Vagyis, ha ezt a műveletet kétszer hajtja végre bitek között xés Y, akkor a végeredményben megkapjuk az eredeti bit értéket x.

0 XOR 0 = 0 XOR 0 = 0 0 XOR 1 = 1 XOR 1 = 0 1 XOR 0 = 1 XOR 0 = 1 1 XOR 1 = 0 XOR 1 = 1

Ez a tulajdonság felhasználható például a legegyszerűbb adat-titkosításhoz (erről máskor többet).

Paritásellenőrzés az XOR művelet után

Az XOR parancs 8, 16 és 32 bites műveletekkel működik.

Néha szükség van egy művelet végrehajtása után a PF paritásjelző ellenőrzésére, hogy kiderüljön, hány egyes (páros vagy páratlan) bit található alacsony bájt eredmény (erre néha nemcsak XOR-művelet, hanem más számtani és logikai műveletek végrehajtása esetén is szükség van).

Ha a paritásjelző be van állítva, akkor az eredmény páros számú bit lesz. Ellenkező esetben a zászló törlődik.

Bármelyik számot ellenőrizheti egyenletessége nélkül, az eredmény értékének megváltoztatása nélkül. Ehhez nulla értékkel kell végrehajtania az XOR parancsot. Vagyis a VEVŐ-ben kell lennie egy ellenőrzött számnak, a FORRÁSban pedig nullának. És akkor ellenőriznie kell a paritásjelzőt. Példa:

AL, 10110101b; Helyezzen be páratlan számot az AL-ba; egy bit száma (5) XOR AL, 0; Ebben az esetben a PF paritásjelző nincs megadva; set (PO) MOV AL, 10110111b; helyezzen be egy számot AL-ba párosával; egy bit száma (6) XOR AL, 0; Ebben az esetben a PF; paritásjelző lesz beállítva (PE)

A hibakeresőknél a PE (Parity Even) rövidítést általában a kapott eredmény páros számú egységének, páratlan számnak pedig PO (Parity Odd) jelölésére használják.

Paritás 16 bites szavakkal

Mint már említettük, a paritásjelzőt az eredmény alacsony bájtjában szereplő számok függvényében állítjuk be. A 16 bites operandus paritásának ellenőrzéséhez XOR utasítást kell végrehajtania ennek a számnak a felső és az alacsony bájtja között:

MOV AX, 64C1h; 0110 0100 1100 0001 - 6 egybites XOR AH, AL; A paritásjelző be lesz állítva

Ilyen egyszerű módon a 16 bites operandus két bájtra oszlik (2 darab egyenként 8 bites csoportra), és az XOR utasítás végrehajtásakor a két 8 bites operandus megfelelő bitjeiben levőket nem vesszük figyelembe. számla. Mivel az eredmény megfelelő bitje nulla.

Az XOR utasítás eltávolítja az átfedő 1 bitet a két 8 bites operandusból az eredményből, és nem átfedő 1 bitet ad hozzá az eredményhez. Vagyis a kapott 8 bites szám paritása megegyezik az eredeti 16 bites szám paritásával.

0110 0100 1100 0001 - eredeti 16 bites szám 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

Ennek eredményeként 4 egység, vagyis a PF zászló lesz beállítva

Paritás 32 bites kettős szavakban

De mi van, ha meg kell határoznia a paritást egy 32 bites számban?

Ezután a szám négy bájtra oszlik, és egy exkluzív VAGY műveletet hajtanak végre felváltva ezekkel a bájtokkal.

Például felosztottuk a 32 bites számot B négy bájttal B0, B1, B2, B3 hol B0 a legkevésbé jelentős bájt.

Ezután a B szám paritásának meghatározásához a következő képletet kell használnunk:

B0 XOR B1 XOR B2 XOR B3

De ilyen jelölés nem megengedett az assemblerben. Ezért gondolkodni kell egy kicsit.

És végül a mnememonika eredetéről XOR... Az angolnak van e szava x a felfogás kivétel. Ennek a szónak a rövidítése a betű x(így történt). Valószínűleg látta ezt olyan hirdetésekben vagy azoknak a termékeknek a nevében, amelyek gyártói azt állítják, hogy kizárólagosak (vagy azt gondolják, hogy állítják). Például a Lada XRAY, a Sony XPeria stb. Tehát az XOR kétszavas rövidítés - pl x felfogás VAGY- kizárólagos VAGY.