Základní logické operace (a, nebo, xor, ne). Složitější logické prvky Výsledkem je logická operace xor

Chování

Prvky Exclusive OR, Exclusive NOR, Odd a Even vypočítají odpovídající funkci vstupních hodnot a vydají výsledek.

Ve výchozím nastavení jsou nepřipojené vstupy ignorovány - tedy pokud na vstupech není ve skutečnosti nic připojeno - ani dráty. Můžete tedy přidat 5vstupový prvek, ale připojte pouze dva vstupy a bude fungovat jako 2vstupový prvek; to vám ušetří starosti s nastavením počtu vstupů pokaždé, když vytvoříte prvek. (Pokud nejsou připojeny všechny vstupy, je chybová hodnota na výstupu X.) Někteří uživatelé však dávají přednost tomu, aby Logisim trval na tom, aby byly všechny vstupy připojeny, protože to odpovídá skutečným prvkům. Toto chování můžete povolit výběrem položky Projekt > Možnosti..., přechodem na kartu Modelování a výběrem možnosti Chyba pro nedefinované vstupy pro Výstup prvku při nejistotě.

Dvouvstupová pravdivostní tabulka pro prvky je následující.

XyExkluzivní OR Exkluzivní NEBO NELichá paritaParita
0 0 0 1 0 1
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 1 0 1

Jak vidíte, hradla Odd a XOR se chovají stejně v případě dvou vstupů; podobně se prvky Parity a Exclusive NOR chovají stejně. Pokud však existují více než dva vstupy s určitou hodnotou, pak prvek Exclusive OR bude mít výstup 1, když je jeden právě jeden vstup, zatímco prvek Lichý bude mít výstup 1, když je jeden na lichém počtu vstupů. Hradlo XOR bude na výstupu produkovat 1, když jsou vstupy s jedničkou striktně Ne jeden, zatímco prvek Parity dá 1, když je sudý počet vstupů s jedním. Brány XOR a XNOR mají atribut nazvaný Multi-Input Behavior, který jim umožňuje nakonfigurovat chování lichých a sudých bran.

Pokud má některý ze vstupů chybovou hodnotu (například pokud jsou na stejný vodič dodávány konfliktní hodnoty) nebo plovoucí hodnotu, bude výstup chybovou hodnotou.

Vícebitové verze každého prvku provedou své jednobitové převody na vstupech bitově.

Poznámka: Mnoho odborníků tvrdí, že chování složeného prvku XOR by mělo odpovídat chování prvku Odd, ale v této otázce neexistuje shoda. Výchozí chování Logisim pro prvek XOR je založeno na standardu IEEE 91. To je také v souladu s intuitivním chápáním termínu Exkluzivní OR: Číšník, který se vás zeptá, zda chcete jako přílohu bramborovou kaši, mrkev, zelený hrášek nebo salát, přijme pouze jednu možnost, nikoli tři, bez ohledu na to, co vám někteří odborníci říkají. (Musím však přiznat, že jsem toto tvrzení vážně netestoval.) Brány XOR a XNOR můžete nakonfigurovat tak, aby používaly jednu z variant, změnou jejich atributu Multi-Input Behavior.

Kontakty (za předpokladu, že součástka směřuje na východ)

Západní okraj (vstupy, bitová šířka odpovídá atributu Data Bits)

Komponentní vstupy. Bude jich tolik, kolik je uvedeno v atributu Počet vstupů.

Všimněte si, že pokud použijete složené prvky, bude západní okraj prvků XOR a XNOR zakřivený. Vstupní piny jsou však stěží umístěny. Logisim kreslí krátké segmenty, aby to ukázal; pokud překryjete segment, program bude bez varování předpokládat, že jste jej překrýt nechtěli. Při použití "Zobrazení tisku" se tyto segmenty nevykreslí, pokud nejsou připojeny k vodičům.

Východní okraj (výstup, bitová šířka odpovídá atributu Data Bits)

Výstup prvku, jehož hodnota se vypočítá na základě aktuálních hodnot na vstupech, jak je popsáno výše.

Atributy

Když je komponenta vybrána nebo již byla přidána, klávesy 0 až 9 změní její atribut Number of Inputs, Alt-0 až Alt-9 změní její atribut Data Bits a klávesy se šipkami změní její atribut Direction.

Směr Směr součásti (její výstup vzhledem k jejím vstupům). Data Bits Šířka vstupů a výstupů komponenty. Velikost prvku Určuje, zda má být vykreslena široká nebo úzká verze komponenty. To nemá vliv na počet vstupů, který je určen atributem Počet vstupů; pokud však počet vstupů překročí 3 (pro úzkou komponentu) nebo 5 (pro širokou komponentu), pak bude prvek vykreslen s "křídly", aby se přizpůsobil požadovanému počtu vstupů. Počet vstupů Určuje, kolik pinů na západním okraji bude mít komponenta. Chování s více vstupy (pouze XOR a XNOR) Pokud jsou tři nebo více vstupů, výstup hradel XOR a XNOR bude založen buď na skutečnosti, že 1 je striktně jeden vstup (výchozí), nebo na lichém počtu vstupů. .

Často, aby demonstrovali omezené schopnosti jednovrstvých perceptronů při řešení problémů, se uchylují k uvažování o tzv. XOR – exkluzivní OR.

Podstata úkolu je následující. Je dána logická funkce XOR - exkluzivní OR. Je funkcí dvou argumentů, z nichž každý může být nula nebo jedna. Má hodnotu , když je jeden z argumentů roven jednomu, ale ne oba, jinak . Problém lze ilustrovat pomocí jednovrstvého jednoneuronového dvouvstupového systému, jak je znázorněno na obrázku níže.

Označme jeden vstup , druhý , pak se všechny jejich možné kombinace budou skládat ze čtyř bodů na rovině. Níže uvedená tabulka ukazuje požadovaný vztah mezi vstupy a výstupem, kde kombinace vstupů, které by měly vytvořit nulový výstup, jsou označeny a , jeden výstup je označen a .

Body Význam Význam 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 rozhodovací plochu ve formě libovolné přímky. Aby síť implementovala funkci XOR specifikovanou v tabulce výše, musíte umístit čáru tak, aby body byly na jedné straně čáry a body na druhé. Když jsme se pokusili nakreslit takovou přímku na obrázku níže, jsme přesvědčeni, že to není možné. To znamená, že bez ohledu na to, jaké hodnoty jsou přiřazeny vahám a prahu, jednovrstvá neuronová síť není schopna reprodukovat vstupně-výstupní vztah potřebný k reprezentaci funkce XOR.

Funkce XOR je však snadno tvořena dvouvrstvou sítí, a to mnoha způsoby. Podívejme se na jednu z těchto metod. Pojďme modernizovat síť na obrázku přidáním další skryté vrstvy neuronů:

Všimněte si, že tato síť je dána tak, jak je, tzn. můžeme předpokládat, že již byla vycvičena. Čísla nad šipkami ukazují hodnoty synaptických vah. Jako aktivační funkci použijeme funkci jednoho skoku s prahovou hodnotou s následujícím grafem:

Výsledek fungování takové neuronové sítě pak lze prezentovat ve formě následující tabulky:

Body Význam Význam 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ří rozhodovací plochu v podobě libovolné přímky (rozděluje rovinu na dvě poloroviny) a neuron výstupní vrstvy tato dvě řešení kombinuje a tvoří rozhodovací plochu v forma pruhu tvořeného rovnoběžnými přímými liniemi neuronů první vrstvy:

Neuronová síť použitá v tomto článku k řešení problému XOR je primitivní a nevyužívá plně možností vícevrstvých sítí. Je zřejmé, že vícevrstvé neuronové sítě mají větší reprezentační výkon než jednovrstvé pouze za přítomnosti nelinearity. A v této síti je aplikována prahová lineární aktivační funkce. Takovou síť nelze trénovat například pomocí algoritmu zpětného šíření.

V tomto článku budeme hovořit o některých bitových operacích. Podívejme se na ty hlavní: XOR (exclusive OR), AND, NOT a OR.

Jak známo, minimální jednotkou měření informace je bit, který ukládá jednu ze 2 hodnot: 0 ( Nepravdivé, nepravda) nebo 1 ( Skutečný, skutečný). Bitová buňka tedy může být současně pouze v jednom ze dvou možných stavů.

K manipulaci s bity se používají určité operace - logické nebo booleovské. Mohou být aplikovány na jakýkoli bit, bez ohledu na to, zda je jeho hodnota nula nebo jedna. Nuže, podívejme se na příklady použití tří základních logických operací.

Logická operace AND (a)

A označeno &.

Operátor AND se provádí na 2 bitech, vezměme si například a a b. Výsledek operace AND je 1, pokud a a b jsou rovny 1. Jinak je výsledek 0. Například pomocí AND můžete zjistit, zda je číslo sudé či nikoliv.

Podívejte se na pravdivostní tabulku operace AND:

Logická operace OR (OR)

Označeno | .

Operátor NEBO také provedeno se 2 bity (a a b). Výsledek je 0, pokud a a b jsou 0, jinak je 1. Podívejte se na pravdivostní tabulku.

Logická operace XOR (exkluzivní OR)

Operátor XOR je označen ^.

XOR provádí se 2 bity (a a b). Výsledek operace XOR ( exkluzivní NEBO) je 1, když jeden z bitů b nebo a je 1. Jinak je výsledek použití operátoru XOR 0.

Pravdivostní tabulka logické operace pro XOR (exkluzivní OR) vypadá takto:

Pomocí XOR (exclusive OR) můžete změnit hodnoty 2 proměnných stejného datového typu bez použití dočasné proměnné. Text můžete také šifrovat pomocí XOR, například:

String msg = "Toto je zpráva"; char message = msg.toCharArray(); Klíč řetězce = ".*)"; String encryptedString = new String(); for(int i = 0; i< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

Souhlasím, že XOR není zdaleka nejspolehlivější šifrovací metoda, ale to neznamená, že nemůže být součástí žádného šifrovacího algoritmu.

Logická operace NE (NE)

Toto je bitová negace, takže se provádí s jedním bitem a označuje se ~ .

Výsledek závisí na stavu bitu. Pokud je v nulovém stavu, pak je výsledek operace jedna a naopak. Vše je extrémně jednoduché.

Tyto 4 logické operace je třeba si zapamatovat jako první, protože s jejich pomocí můžete získat téměř jakýkoli možný výsledek. Existují také operace jako např<< (побитовый сдвиг влево) и >> (bitový posun doprava).

Absolutně všechny digitální mikroobvody se skládají ze stejných logických prvků - „stavebních kamenů“ jakéhokoli digitálního uzlu. O tom si teď povíme.

Logický prvek- Jedná se o obvod, který má několik vstupů a jeden výstup. Každý stav signálů na vstupech odpovídá konkrétnímu signálu na výstupu.

Jaké jsou tedy prvky?

Prvek „AND“

Jinak se nazývá „konjunktor“.

Abyste pochopili, jak to funguje, musíte nakreslit tabulku, která uvádí výstupní stavy pro jakoukoli kombinaci vstupních signálů. Tato tabulka se nazývá " pravdivostní tabulka" Pravdivé tabulky jsou široce používány v digitální technice k popisu činnosti logických obvodů.

Takto vypadá prvek „AND“ a jeho pravdivostní tabulka:

Protože budete muset komunikovat s ruskou i buržoazní technikou. dokumentaci, poskytnu symbolické grafické symboly (GID) prvků jak dle našich, tak i mimo naše normy.

Podíváme se na tabulku pravdy a ujasníme si princip v našem mozku. Není těžké to pochopit: jednotka na výstupu prvku „AND“ se vyskytuje pouze tehdy, když jsou jednotky přivedeny na oba vstupy. To vysvětluje název prvku: jednotky musí být na JEDNOM I druhém vstupu.

Pokud se na to podíváme trochu jinak, můžeme říci toto: výstup prvku „AND“ bude nulový, pokud se nula přivede alespoň na jeden z jeho vstupů. Připomeňme si. Pokračuj.

NEBO prvek

Jiným způsobem se mu říká „disjunktor“.

Obdivujeme:

Opět název mluví sám za sebe.

Jednotka se objeví na výstupu, když je jednotka přivedena na jeden NEBO na druhý NEBO na oba vstupy najednou. Tento prvek lze také nazvat prvkem „AND“ pro zápornou logiku: nula na jeho výstupu nastane pouze tehdy, jsou-li nuly přivedeny jak na jeden, tak na druhý vstup.

Prvek POZNÁMKA

Častěji se nazývá „střídač“.

Musím něco říkat o jeho práci?

prvek NAND

Hradlo NAND funguje úplně stejně jako hradlo AND, jen výstupní signál je zcela opačný. Tam, kde by prvek „AND“ měl mít výstup „0“, prvek „AND-NOT“ by měl mít jedničku. A naopak. To lze snadno pochopit z ekvivalentního obvodu prvku:

Prvek "NOR" (NOR)

Stejný příběh - prvek „OR“ s invertorem na výstupu.

Další soudruh je trochu mazanější:
Exkluzivní prvek OR (XOR)

On je takový:

Operace, kterou provádí, se často nazývá "addition modulo 2". Na těchto prvcích jsou ve skutečnosti postaveny digitální výbavičky.

Podívejme se na tabulku pravdy. Kdy je výstupní jednotka? Správně: když mají vstupy různé signály. Na jednom - 1, na druhém - 0. Takhle je mazaný.

Ekvivalentní obvod je něco takového:

Není nutné se to učit nazpaměť.

Ve skutečnosti jsou to hlavní logické prvky. Na jejich základě jsou postaveny absolutně jakékoli digitální mikroobvody. Dokonce i vaše oblíbené Pentium 4.

A konečně několik mikroobvodů obsahujících digitální prvky. Čísla odpovídajících ramen mikroobvodu jsou uvedena v blízkosti svorek prvků. Všechny zde uvedené žetony mají 14 nohou. Napájení je přiváděno do nohou 7 (-) a 14 (+). Napájecí napětí – viz tabulka v předchozím odstavci.

Nejjednodušší logické operace

Nejjednodušší logické operace patří do dvouhodnotové logiky. Jsou 4 z nich: „NOT“, „AND“, „OR“, „XOR“. K označení těchto operací se také používají různé symboly („~“, „&“ atd.).

Při psaní logických vzorců se místo slov „pravda“ a „nepravda“ obvykle používají standardní mezinárodní zápisy:
Místo „pravda“ píší: pravda, T, t, 1.
Místo „false“ píší: false, F, f, 0.

"NE"

Operace „NOT“ převede true na false a false na true:

NEpravda = nepravda
NE nepravda = pravda

Tato operace má různé další názvy: „logické NE“, „negace“, „logická negace“, „inverze“, „logická inverze“. U mezinárodních označení se místo „NOT“ píše „NOT“.

V přirozeném jazyce tato operace odpovídá přidání slov „není pravda, že...“ na začátek výroku. Například:

Použití operace „NOT“ na příkaz (1):

"Není pravda, že mi Surkov dluží peníze." (2)

Pokud je výrok (1) nepravdivý, pak výrok (2) je pravdivý. Je-li výrok (2) nepravdivý, pak výrok (1) je pravdivý.

Není těžké pochopit, že dvojí použití „NE“ nás vrací k předchozí pravdě.

"To není pravda, není pravda, že mi Surkov dluží peníze." (3)

Pravda výroku (3) se vždy shoduje s pravdivostí výroku (1).

"A"

Operace AND se aplikuje na dva příkazy. Jeho výsledek je „pravda“ pouze tehdy, jsou-li oba výroky pravdivé (jinak „nepravda“):

nepravda A nepravda = nepravda
nepravda A pravda = nepravda
pravda a nepravda = nepravda
pravda A pravda = pravda

Tato operace má různé další názvy: „logické AND“, „spojení“, „logické násobení“. U mezinárodních označení se místo „I“ píší „AND“.

V přirozeném jazyce tato operace odpovídá vložení spojky „a“ ​​mezi příkazy. Například:

"Surkov mi dluží peníze." (1)
"Petrov mi dluží peníze." (2)

Použití operace „AND“ na příkazy (1) a (2):

"Surkov mi dluží peníze a Petrov mi dluží peníze." (3)

Tuto frázi lze zkrátit při zachování stejného významu:

"Surkov a Petrov mi dluží peníze." (3)

Tvrzení (3) je pravdivé pouze tehdy, jsou-li pravdivé oba výroky (1) a (2). Pokud je alespoň jeden z nich nepravdivý, pak je výsledek také nepravdivý. Pokud jsou oba nepravdivé, jsou také nepravdivé.

To znamená, že pokud mi peníze nedlužil Petrov, ale pouze Surkov, pak výrok (3) nebude „polopravdou“ nebo „pololží“, ale bude prostě lží.

"NEBO"

Operace OR se aplikuje na dva příkazy. Jeho výsledek je „pravda“, pokud je alespoň jeden výrok pravdivý (jinak „nepravda“):

nepravda NEBO nepravda = nepravda
nepravda NEBO pravda = pravda
pravda NEBO nepravda = pravda
pravda NEBO pravda = pravda

Tato operace má různé další názvy: „logické OR“, „včetně OR“, „disjunkce“, „logické sčítání“. U mezinárodních označení místo „OR“ napište „OR“.
V přirozeném jazyce tato operace odpovídá vkládání spojky „nebo“ mezi příkazy, ale... ne vždy (viz níže o operaci „XOR“). Například:

"Chci něco k pití." (1)
"Chci jíst". (2)

Použití operace OR na příkazy (1) a (2):

"Chci pít nebo chci jíst." (3)

V ruštině to zní správně, ale neobratně, a tato fráze může být zkrácena, přičemž si zachovává stejný význam:

"Chci pít nebo jíst." (3)

Tvrzení (3) je pravdivé, když alespoň jeden z výroků (1) a (2) je pravdivý, nebo jsou možné oba. Pokud jsou oba výroky nepravdivé, pak je i výsledek nepravdivý.

To znamená, že pokud mám hlad, ale ne žízeň, pak je tvrzení (3) pravdivé. Pokud nemám odpor k jídlu i pití, tvrzení (3) je také pravdivé. Je falešné, když nechci ani jedno, ani druhé.

"XOR"

Operace XOR se aplikuje na dva příkazy. Jeho výsledek je „pravda“, pokud je pravdivý přesně jeden z výroků (jinak „nepravda“):

nepravda XOR nepravda = nepravda
nepravda XOR true = pravda
pravda XOR nepravda = pravda
true XOR true = nepravda

Tato operace má různé další názvy: „exkluzivní OR“, „addition modulo 2“, „logical add modulo 2“. „XOR“ je mezinárodní označení, neexistuje žádný obecně přijímaný „ruský“ analog.

V přirozeném jazyce tato operace odpovídá vkládání spojky „nebo“ mezi příkazy – stejně jako v případě operace „OR“. Například:

"Požádám o zvýšení platu." (1)
"Pokusím se ušetřit." (2)

Použití operace „XOR“ na příkazy (1) a (2):

"Požádám o zvýšení platu nebo se pokusím ušetřit." (3)

Zkráceno:

"Požádám o zvýšení nebo se pokusím ušetřit peníze." (3)

Tvrzení (3) je pravdivé, pokud je pravdivý právě jeden z výroků (1) a (2). Pokud nebudu žádat o zvýšení nebo úsporu, pak je tato fráze nepravdivá. Také jsem chtěl říct, že nebudu dělat obojí najednou.

Všimněte si rozdílu mezi operacemi OR a XOR. Spočívá pouze v posledním pravidle:

pravda NEBO pravda = pravda
true XOR true = nepravda

V přirozeném jazyce jsou obě operace reprezentovány stejnou spojkou „nebo“. Toto je příklad nejednoznačnosti v přirozeném jazyce. Pokud si pamatujete, homonyma a nejednoznačná slova mohou mít více než jeden význam. Spojka „nebo“ je právě taková: má dva možné významy. První je vyjádřena logickou operací „OR“, druhá – logickou operací „XOR“.

V angličtině existují stejné problémy: spojka „nebo“ má dva stejné významy. Ale pro staré Římany to bylo jednodušší, protože v latině existují dvě různá slova: „vel“ (operace OR) a „aut“ (operace XOR).

Protože rozdíl mezi OR a XOR je malý (jen jedno poslední pravidlo), někdy na rozdílu nezáleží. Někdy můžete hádat, co se myslí intonací nebo kontextem. Někdy není možné určit přesný význam.

mob_info