Diskuze: Logické operátory - XOR

Volná diskuze Logické operátory - XOR

Aktivity (1)
Avatar
Theodor Johnson
Redaktor
Avatar
Theodor Johnson:12.8.2013 10:47

Ahoj, zrovna jsem narazil na logický operátor xor, ale zajímalo by mě jak funguje se třemi podmínkami

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

1 XOR 1 XOR 1 = 1
0 XOR 0 XOR 0 = 0
Odpovědět 12.8.2013 10:47
Přecházím na "Cross-Platform Development"
Avatar
archlin
Člen
Avatar
archlin:12.8.2013 10:55

1 xor 1 xor 1 = (1 xor 1) xor 1 => 1
0 xor 0 xor 0 = (0 xor 0) xor 0 => 0

Nahoru Odpovědět 12.8.2013 10:55
sublime text 2
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na archlin
Theodor Johnson:12.8.2013 10:58

Díky, teď už mi to došlo :)

Nahoru Odpovědět 12.8.2013 10:58
Přecházím na "Cross-Platform Development"
Avatar
Martin Dráb
Redaktor
Avatar
Martin Dráb:12.8.2013 11:01

XOR = exkluzivní OR, nebo také non-ekvivalence:
A XOR B je to samé jako NOT (A <=> B)

Nahoru Odpovědět 12.8.2013 11:01
2 + 2 = 5 for extremely large values of 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Theodor Johnson
Kit:12.8.2013 11:18

XOR je operátor, který by se měl používat co nejméně a hlavně až po zralé úvaze. Jeho použití v programování není sice tak rizikové jako v elektronice, ale i tak je většinou lepší se mu vyhnout.

Nahoru Odpovědět 12.8.2013 11:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Theodor Johnson
Redaktor
Avatar
Odpovídá na Kit
Theodor Johnson:12.8.2013 11:31

Zatím jsem ho nepoužil nikdy, spíš jsem to našel na msdn a zajímalo mě jak funguje :)

Nahoru Odpovědět 12.8.2013 11:31
Přecházím na "Cross-Platform Development"
Avatar
Kit
Redaktor
Avatar
Odpovídá na Theodor Johnson
Kit:12.8.2013 12:05

Na MSDN jsem už našel spoustu kravin, např. "goto".

Uvědom si, že MSDN není manuál, ale referenční příručka. Musí v ní být i konstrukce, které se sice nemají používat, ale jsou součástí jazyka.

Nahoru Odpovědět  +1 12.8.2013 12:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):12.8.2013 12:22

Nevidím důvod se XORu vyhýbat.
Logický XOR sice nepoužívám, protože se dá vše zapsat bez něj, ale binární xor se občas docela hodí :)

Nahoru Odpovědět 12.8.2013 12:22
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:12.8.2013 12:28

Nevzpomínám si, kdy jsem naposledy XOR potřeboval. Možná když jsem chtěl invertovat maskou nějakou logickou hodnotu. Takové operace se většinou skrývají uvnitř GUI a není potřebné s nimi přímo manipulovat.

Nahoru Odpovědět 12.8.2013 12:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):12.8.2013 12:44

Proč by do jazyka dávali něco, co se nemá používat?

Nahoru Odpovědět 12.8.2013 12:44
:)
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
TomBen:12.8.2013 12:50

Protože ho používat lze. Svoboda kódování. :D
To že existuje tě nenutí ho použít, ale když chceš, tak i můžeš.

Nahoru Odpovědět 12.8.2013 12:50
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:12.8.2013 12:51

Aby si naivky myslely, že to musí používat. Taková lehká forma sadismu.

Nahoru Odpovědět 12.8.2013 12:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):12.8.2013 13:00

Že ty si myslíš, že se něco nemá používat, ještě neznamená, že se to nemá používat :)

Nahoru Odpovědět 12.8.2013 13:00
:)
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Kit
TomBen:12.8.2013 13:01

On xor prolezl do všech jazyků z JSA, kde to smysl dávalo.

edit: myslím v tom low level programování to mělo smysl

Editováno 12.8.2013 13:02
Nahoru Odpovědět  +1 12.8.2013 13:01
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
TomBen:12.8.2013 13:04

Nemá neznamená nesmí. :-)
Existuje strašná spousta věcí, které se nemají.
Už jsi šel někdy přes trávu? A víš že existuje chodník?
A že se silnice 'má' přecházet jen po zebře?
Kdyby všichni dělali jen co mají, byli bychom stroje.

Nahoru Odpovědět  +2 12.8.2013 13:04
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Kit
Redaktor
Avatar
Odpovídá na TomBen
Kit:12.8.2013 13:07

Po trávě se nechodí, ale lítá :)

Nahoru Odpovědět  +1 12.8.2013 13:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na TomBen
Luboš Běhounek (Satik):12.8.2013 13:11

Reagoval jsem tím hlavně na Kitův názor na goto - že se nemá používat.

Je to jeho názor, ale prezentuje ho tu jako by to byl obecně uznávaný fakt, což není.

Nahoru Odpovědět 12.8.2013 13:11
:)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Jiří Gracík:12.8.2013 13:17

Mám dojem, že má na mysli používání goto například v C#. Třeba v ASM by to šlo asi těžko jinak :)

Editováno 12.8.2013 13:17
Nahoru Odpovědět 12.8.2013 13:17
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Luboš Běhounek (Satik):12.8.2013 13:21

Ano, to souhlasí, já také neměl na mysli asm :)

Nahoru Odpovědět 12.8.2013 13:21
:)
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Jiří Gracík:12.8.2013 13:27

Má goto třeba v již zmiňovaném C# nějaké vhodné využití?

Nahoru Odpovědět 12.8.2013 13:27
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Luboš Běhounek (Satik):12.8.2013 13:48

Problém s goto byl ten, že se dříve používalo nadměrně a znepřehleňovalo to kód.

Ale stejně tak někteří začátečníci nadužívají třeba podmínky...

Když se goto použije opravdu na vhodném místě, tak to dokonce kód může být přehlednější a rychlejší - třeba pro vyskočení z vnořených smyček.

Editováno 12.8.2013 13:48
Nahoru Odpovědět 12.8.2013 13:48
:)
Avatar
vitamin
Neregistrovaný
Avatar
Odpovídá na Jiří Gracík
vitamin:12.8.2013 13:48

Vyskocenie z vnoreneho cykly/switchu.

 
Nahoru Odpovědět 12.8.2013 13:48
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Jiří Gracík:12.8.2013 13:49

Jsem rád za názor z druhýho břehu, jak učitel tak kit by za goto vraždili, pak nemá mít člověk dojem že se to nesmí/nemá používat :)

Nahoru Odpovědět  +1 12.8.2013 13:49
Creating websites is awesome till you see the result in another browser ...
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na vitamin
Petr Nymsa:12.8.2013 13:50

Z vnořeného cyklus vyskočím buď správně nastavenou podmínkou nebo ho vložím do metody a v místě, kde potřebuju vyskočit vrátím chybnou hodnotu... goto osobně nepoužívám

Nahoru Odpovědět  +1 12.8.2013 13:50
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar

Neregistrovaný
Avatar
Odpovídá na Petr Nymsa
:12.8.2013 13:55

Miesto pozitia navestia a goto radsej vytvoris pomocnu premennu(ktora sa musi testovat v kazdom cykle) alebo este lepsie spravys dalsiu funkciu a budes testovat navratovu hodnotu...

 
Nahoru Odpovědět 12.8.2013 13:55
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jiří Gracík
Kit:12.8.2013 13:57

Takové goto je totiž zpravidla úplně zbytečné. Obvykle je jen ukázkou toho, že programátor neumí používat vhodnější způsoby strukturování kódu.

Nahoru Odpovědět 12.8.2013 13:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Kit
Jiří Gracík:12.8.2013 13:58

Přijde mi to zvláštní ale jako výmluvu to beru ;)

// občas mi totiž není vůbec jasný o čem se vy dva hádáte, konečně jednou vím :D

Editováno 12.8.2013 13:59
Nahoru Odpovědět 12.8.2013 13:58
Creating websites is awesome till you see the result in another browser ...
Avatar
Kit
Redaktor
Avatar
Odpovídá na
Kit:12.8.2013 14:00

Aspoň si vymysli nějaké jméno.

Jdeš na to chybně. Přemýšlíš nad otázkou: "jak mám nahradit goto?" a to je špatně.

Nahoru Odpovědět 12.8.2013 14:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Jiří Gracík
Kit:12.8.2013 14:07

Luboš Běhounek (Satik) totiž hájí své pozice, kterými jsem si kdysi prošel a které jsem před několika lety opustil.

Nahoru Odpovědět 12.8.2013 14:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
vitamin
Člen
Avatar
Odpovídá na Kit
vitamin:12.8.2013 14:09

Ja nechcem nahradit goto. Goto nema nahradu :)
Vyskocit z vnoreneho cyklu sa da najlepsie pomocou goto. Je to prehladnejsie a rychlejsie ako pouzivat docasne premenne.
Je to preto lebo c# neumoznuje pomenovat cyklus a pouzit nieco taketo:

for:name(...){

    while(...){

        break name;
    }
}
 
Nahoru Odpovědět  ±0 12.8.2013 14:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na vitamin
Kit:12.8.2013 14:13

Z cyklu se dá vyskočit i returnem, což by v daném případě bylo asi nejvhodnější.

O dočasných proměnných nebyla řeč. Často jsou zbytečné.

Nahoru Odpovědět 12.8.2013 14:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Jiří Gracík
Luboš Běhounek (Satik):12.8.2013 14:13

Občas mi to také není jasné, třeba asi před půl rokem jsme se hádali o použití klíčového slova var ( http://www.itnetwork.cz/…10d0b7e1f78e )
a Kit až před měsícem zjistil, k čemu slouží :D

Nahoru Odpovědět  +1 12.8.2013 14:13
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:12.8.2013 14:21

Kde bys byl, kdybys neměl oponenta? :)

Nahoru Odpovědět  +2 12.8.2013 14:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jiří Gracík
Redaktor
Avatar
Jiří Gracík:12.8.2013 15:08

Kit | Luboš Běhounek (Satik)

mě se vaše hádky líbí, sice mám vždycky pocit že ke konci diskusi převzali mimozemšťani, ale většinou si i něco odnesu :D

Nahoru Odpovědět  +2 12.8.2013 15:08
Creating websites is awesome till you see the result in another browser ...
Avatar
Odpovídá na Jiří Gracík
Michael Olšavský:12.8.2013 17:32

Většinou si odneseš plno argumentů pro a proti, ale žádnou výslednou odpověď :D

 
Nahoru Odpovědět  +2 12.8.2013 17:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michael Olšavský
Kit:12.8.2013 17:49

Však to tak má být. Ať každý hezky přemýšlí sám za sebe. Tady nejsme na základní škole.

Nahoru Odpovědět  +1 12.8.2013 17:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 36 zpráv z 36.