Logické operace

Výčet logických operací

Výroková pracuje s hodnotami pravda a nepravda. V elektrických obvodech jsme tyto hodnoty vyjadřovali jako "high" a "low". Zde v zápiscích budeme zapisovat pravdu jako 1 a nepravdu jako 0.

Většina zde zmíněných operací (kromě NOT) má dva vstupy. Můžete si všimnout, že výsledek operace se obvykle nemění, když vstupy mezi sebou prohodíme. Jediná ze zde zmíněných operací, která se tomu vymyká, je implikace.

Operace AND

Operaci AND známe z logiky jako konjunkci, čili "a zároveň". Ve středoškolské logice se používá značka ∧, jinde též &.

AND

první vstup
druhý vstup
výstup
0 0 0
0 1 0
1 0 0
1 1 1

Operace OR

Operaci OR známe z logiky jako disjunkci. Lidsky ji popisujeme jako "jedno nebo druhé anebo obojí". Ve středoškolské logice se používá značka ∨, v počítačích spíše |.

OR

první vstup
druhý vstup
výstup
0 0 0
0 1 1
1 0 1
1 1 1

Operace NOT

Operaci NOT známe z logiky jako negaci. Ve středoškolské logice se používá značka ¬, v počítačích se často značí vykřičníkem !, což může kdekoho mást.

NOT

vstup
výstup
0 1
1 0

Operace NAND

Zkratka NAND znamená NOT AND. Někdy se značí šipkou nahoru ↑, ale pro srozumitelnost ji budeme radši psát celým jménem. Dává opačné hodnoty než AND, čili dává nulu pouze v případě, že dostane na obou vstupech jedničku.

NAND

první vstup
druhý vstup
výstup
0 0 1
0 1 1
1 0 1
1 1 0

Operace XOR

Zkratka XOR znamená Exclusive OR, česky "výlučné nebo". Někdy se značí jako disjunkce s podtržením ⊻ nebo plusem v kroužku ⊕, ale není v tom jednoznačná domluva. Chová se obdobně jako matematické "nerovná se": dává jedničku v případě, že jeden vstup je jednička a jeden nula.

XOR

první vstup
druhý vstup
výstup
0 0 0
0 1 1
1 0 1
1 1 0

Implikace

Implikace patří mezi základní operace výrokové logiky a značí se šipkou doprava ⇒, ale v elektronice a programování se nepoužívá. Česky se vyjadřuje vztahem "pokud, tak". Zpočátku je snad trochu matoucí, že pokud levá strana neplatí, tak implikace platí vždycky – ale s tím už jsme se museli smířit v rámci hodin matematiky.

Narozdíl od ostatních zde zmíněných operací, v případě implikace nemůžeme jen tak prohodit levou a pravou stranu.

první vstup
druhý vstup
výstup
0 0 1
0 1 1
1 0 0
1 1 1

Zápis logického výrazu

Jak je vidět, každou operaci můžeme zapisovat slovem anebo nějakým obrázkem. Ve škole dáváme přednost zápisu slovem, protože se snad líp pamatuje.

Co se týče zápisu celé operace i s proměnnými, nabízejí se dvě možnosti: můžeme operátor napsat před proměnné, anebo mezi ně. Na ukázku:

AND(x, y) = x AND y = xy.

Mezi všemi variantami tady můžeme napsat "rovná se", protože jsou to vážně jenom různé způsoby zápisu stejné věci. Kolem výrazů můžeme samozřejmě podle potřeby napsat závorky, když to prospívá čitelnosti.

Nahrazování logických operací

Vhodným výrazem z operací NAND můžeme zapsat všechny ostatní tady zmíněné operace. Možností je vždycky víc, tady v seznamu ale bude jen ta nejstručnější.

Pro lepší porozumění operacím NAND, XOR a implikace může pomoct, když si je rozepíšeme pomocí operací AND, OR a NOT.

Zvědavý čtenář si může všimnout, že všechny operace můžeme zapsat také pomocí implikace, například (x NAND y) = (x ⇒ (y ⇒ 0)). To nám ale k ničemu užitečné nebude.