IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Logické operátory - XOR

Aktivity
Avatar
Theodor Johnson
Tvůrce
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
Mo8ilε 15 Ѐλđ
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
Tvůrce
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
Mo8ilε 15 Ѐλđ
Avatar
Martin Dráb
Tvůrce
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
Tvůrce
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
Tvůrce
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
Mo8ilε 15 Ѐλđ
Avatar
Kit
Tvůrce
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
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
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
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
https://www.facebook.com/peasantsandcastles/
Avatar
TomBen
Tvůrce
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
Tvůrce
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
https://www.facebook.com/peasantsandcastles/
Avatar
TomBen
Tvůrce
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
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
Tvůrce
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
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
Tvůrce
Avatar
Odpovídá na TomBen
Kit:12.8.2013 13:07

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

Nahoru Odpovědět
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
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
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
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
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
https://www.facebook.com/peasantsandcastles/
Avatar
vitamin
Neregistrovaný
Avatar
Odpovídá na Neaktivní uživatel
vitamin:12.8.2013 13:48

Vyskocenie z vnoreneho cykly/switchu.

 
Nahoru Odpovědět
12.8.2013 13:48
Avatar
Odpovídá na Luboš Běhounek Satik
Neaktivní uživatel: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
12.8.2013 13:49
Neaktivní uživatelský účet
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
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
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
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
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
Odpovídá na Kit
Neaktivní uživatel: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
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
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
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
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
12.8.2013 14:09
Avatar
Kit
Tvůrce
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 Neaktivní uživatel
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
12.8.2013 14:13
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
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
12.8.2013 14:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Neaktivní uživatel: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
12.8.2013 15:08
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
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
12.8.2013 17:32
Avatar
Kit
Tvůrce
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
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.