Bitové operace ve vyšších jazycích

Jozko

Re:Bitové operace ve vyšších jazycích
« Odpověď #225 kdy: 08. 09. 2016, 16:44:22 »

Vediet bitovu manipulaciu a vediet pocitat binarne je minimum.
Nech sa na mna nikto nehneva, to sa uci na strednych skolach.
Ak niekto videl ASM alebo C, tak urcite sa s tym stretol.

Co sa tyka jeho pozicie, je na zamestnavatelovi ake si urci podmienky. Najskor uznal, ze tymto sa rozoznavaju takzvane "lopaty" od toho co chce on.

Ak by som bol zamestnavatel a beriem si programatora, ktory ani nema ani stipku tusenia ako funguje pocitac, i ked luska javascript. Tak by som nebol velmi rad.

Osobne nevidim nejake velke plus, ak niekto vie v XYZ frameworkov ,ale ak niekto rozumie ako to funguje, tak to je otazka zopar dni sa to doucit. Skor ide o tie principy a preco to tak funguje, technologie sa menia kazde 2 roky, ale principy zostavaju trocha dlhsie.

Ak chcete kopirantov zo stack overflow, tak si ich kludne prijmite.






Ivan Nový

Re:Bitové operace ve vyšších jazycích
« Odpověď #226 kdy: 08. 09. 2016, 16:54:28 »
To není filtr. To je jen výpočet mocniny dvojky v parametru funkce vytvářející pole.
Asi nerozumím řeči tvého kmene... To si jako představuješ, že je nějaký filtr implementovaný na jeden řádek? Viděl jsi ten kód kolem, nebo ses vůbec neobtěžoval?

Normální člověk by to napsal takto:
Takže normální je ten, kdo nepoužívá a pokud možno ani nezná bitové operace. Když je použije, tak je nenormální. Hrozná demagogie.

Pod filtrem jsem si představoval operaci, která bude praváděna mnohokrát, bude tedy dávat smysl ji optimalizovat. Ten kód co jsi poslal, spočte konstantu, vytvoří pole a po prvcích ho vydělí konstantou. Tu konstantu ale spočte jen jednou. Navíc si jsem jistý, že << není rychlejší než **.

Tobě opravdu nepřijde přirozenější zapisovat umocňování jako umocňování a ne jako bitový posun? V matematických vzorcích také píšeš 1 << N namísto 2^N?
<< je bitový posun, ** je umocnění, jedno funguje jen s celými čísly, druhé i s floating point čísly, u matematických vzorců bývá uveden "datový type"
<< == ** jen v případě 1 << n, << == * jen v případě n << m = n * 2 * m.

Kiwi

Re:Bitové operace ve vyšších jazycích
« Odpověď #227 kdy: 08. 09. 2016, 17:00:05 »
Na to kašlu.

Jako z Cimrmanů... "O programování už nepište nic... A raději neprogramujte vůbec."  :)

Ivan Nový

Re:Bitové operace ve vyšších jazycích
« Odpověď #228 kdy: 08. 09. 2016, 17:04:48 »

Vediet bitovu manipulaciu a vediet pocitat binarne je minimum.
Nech sa na mna nikto nehneva, to sa uci na strednych skolach.
Ak niekto videl ASM alebo C, tak urcite sa s tym stretol.

Co sa tyka jeho pozicie, je na zamestnavatelovi ake si urci podmienky. Najskor uznal, ze tymto sa rozoznavaju takzvane "lopaty" od toho co chce on.

Ak by som bol zamestnavatel a beriem si programatora, ktory ani nema ani stipku tusenia ako funguje pocitac, i ked luska javascript. Tak by som nebol velmi rad.

Osobne nevidim nejake velke plus, ak niekto vie v XYZ frameworkov ,ale ak niekto rozumie ako to funguje, tak to je otazka zopar dni sa to doucit. Skor ide o tie principy a preco to tak funguje, technologie sa menia kazde 2 roky, ale principy zostavaju trocha dlhsie.

Ak chcete kopirantov zo stack overflow, tak si ich kludne prijmite.
Zase na mechanickou programátorskou práci je lepší lopata. Pracuje rychleji i s tím copy and paste. A ta mechanická práce podle cizího vzoru je neotravuje.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #229 kdy: 08. 09. 2016, 17:10:29 »
Je zajímavé, že téměř každý, kromě javamana samozřejmě, tu evidentně bitové operace zná a nemá s nimi zásadní problém (i když je nechce používat). A to i přesto, že to jak sami tvrdí někteří nikdy nepotřebovali. Celkem by mě zajímalo, jak k tomu přišli? Že by to opravdu patřilo k základům? Ale proč tedy to nepochopitelné obhajování neznalosti? Opravdu se tolik vyplatí zaměstnávat motyky za minimální mzdu, na nějaký js barvičkování tlačítek a potom je buď učit a zvedat mzdu, nebo raději vyhodit, když se něco naučí a chtěly by víc?


Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #230 kdy: 08. 09. 2016, 17:18:48 »
Zase na mechanickou programátorskou práci je lepší lopata. Pracuje rychleji i s tím copy and paste. A ta mechanická práce podle cizího vzoru je neotravuje.
Ano... a výsledkem je 80 použitých pochybných knihoven, všechny na to samé, ale každá trochu jiná a z každé použitý jen zlomek. Půlka kódu násilně zobjektovaná, druhá násilně odobjektovaná, 8 proměnných s tou stejnou hodnotou, jenom pokaždé jinak, podle toho, co která knihovna zrovna z nějakého důvodu chce, ošetření chybových stavů žádné, ale hlavně, že to alespoň dva ze tří pokusů nespadne a jednou za čas to i něco udělá správně. Když už se náááhodou někdo obtěžuje s testama, tak jsou tak ohnutý, aby prošly a hurá... jsem programátor a pod 100k nevstanu.

Ivan Nový

Re:Bitové operace ve vyšších jazycích
« Odpověď #231 kdy: 08. 09. 2016, 17:21:51 »
Je zajímavé, že téměř každý, kromě javamana samozřejmě, tu evidentně bitové operace zná a nemá s nimi zásadní problém (i když je nechce používat). A to i přesto, že to jak sami tvrdí někteří nikdy nepotřebovali. Celkem by mě zajímalo, jak k tomu přišli? Že by to opravdu patřilo k základům? Ale proč tedy to nepochopitelné obhajování neznalosti? Opravdu se tolik vyplatí zaměstnávat motyky za minimální mzdu, na nějaký js barvičkování tlačítek a potom je buď učit a zvedat mzdu, nebo raději vyhodit, když se něco naučí a chtěly by víc?
Ano vyplatí se to, protože rutinní práce ubijí ... člověk který o práci uvažuje se na spoustu míst nehodí, protože na nich má slepě plnit příkazy.

Ivan Nový

Re:Bitové operace ve vyšších jazycích
« Odpověď #232 kdy: 08. 09. 2016, 17:25:14 »
Zase na mechanickou programátorskou práci je lepší lopata. Pracuje rychleji i s tím copy and paste. A ta mechanická práce podle cizího vzoru je neotravuje.
Ano... a výsledkem je 80 použitých pochybných knihoven, všechny na to samé, ale každá trochu jiná a z každé použitý jen zlomek. Půlka kódu násilně zobjektovaná, druhá násilně odobjektovaná, 8 proměnných s tou stejnou hodnotou, jenom pokaždé jinak, podle toho, co která knihovna zrovna z nějakého důvodu chce, ošetření chybových stavů žádné, ale hlavně, že to alespoň dva ze tří pokusů nespadne a jednou za čas to i něco udělá správně. Když už se náááhodou někdo obtěžuje s testama, tak jsou tak ohnutý, aby prošly a hurá... jsem programátor a pod 100k nevstanu.
Rozhoduje rychlost a ne kvalita. Ono ani není jisté, zda dokončený projekt se chytí a zaplatí. A rozhoduje kdo s tím přijde první. Ten pak má větší šanci na to udržet se. Musíte to vidět i z této strany.

Ivan Nový

Re:Bitové operace ve vyšších jazycích
« Odpověď #233 kdy: 08. 09. 2016, 17:28:01 »
Zase na mechanickou programátorskou práci je lepší lopata. Pracuje rychleji i s tím copy and paste. A ta mechanická práce podle cizího vzoru je neotravuje.
Ano... a výsledkem je 80 použitých pochybných knihoven, všechny na to samé, ale každá trochu jiná a z každé použitý jen zlomek. Půlka kódu násilně zobjektovaná, druhá násilně odobjektovaná, 8 proměnných s tou stejnou hodnotou, jenom pokaždé jinak, podle toho, co která knihovna zrovna z nějakého důvodu chce, ošetření chybových stavů žádné, ale hlavně, že to alespoň dva ze tří pokusů nespadne a jednou za čas to i něco udělá správně. Když už se náááhodou někdo obtěžuje s testama, tak jsou tak ohnutý, aby prošly a hurá... jsem programátor a pod 100k nevstanu.
V DNA to vypadá taky tak. A to máme miliony let ověřený kód. Prostě tak funguje reálný svět.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #234 kdy: 08. 09. 2016, 17:43:31 »
V DNA to vypadá taky tak. A to máme miliony let ověřený kód. Prostě tak funguje reálný svět.
To je sice pravda, ale život obecně má neuvěřitelnou schopnost korekce chyb a přizpůsobení se. Některé formy to řeší kvalitou (třeba některé šelmy), některé kvantitou (třeba hmyz), ale kupodivu i v přírodě se stane, že v některých společenstvích dokáže přežít i nekvalitní jedinec (třeba bez nohy). V IT to zatím neplatí, korekční mechanismy jsou nespolehlivé a často způsobí více problémů, než užitku a IS těžko přežije s upadlou databázovou, nebo aplikační částí a každá závažnější chyba, třeba na první pohled nezjistitelná, může způsobit různé nekonzistence.

Ivan Nový

Re:Bitové operace ve vyšších jazycích
« Odpověď #235 kdy: 08. 09. 2016, 17:53:33 »
V DNA to vypadá taky tak. A to máme miliony let ověřený kód. Prostě tak funguje reálný svět.
To je sice pravda, ale život obecně má neuvěřitelnou schopnost korekce chyb a přizpůsobení se. Některé formy to řeší kvalitou (třeba některé šelmy), některé kvantitou (třeba hmyz), ale kupodivu i v přírodě se stane, že v některých společenstvích dokáže přežít i nekvalitní jedinec (třeba bez nohy). V IT to zatím neplatí, korekční mechanismy jsou nespolehlivé a často způsobí více problémů, než užitku a IS těžko přežije s upadlou databázovou, nebo aplikační částí a každá závažnější chyba, třeba na první pohled nezjistitelná, může způsobit různé nekonzistence.
To jistě ano, ale plýtvat cenné zdroje na něco, co se ani neujme, je zbytečné. Pokud se něco ujme, stejně se to celé předělá znovu a pořádně.

javaman ((

Re:Bitové operace ve vyšších jazycích
« Odpověď #236 kdy: 08. 09. 2016, 17:53:48 »
Je zajímavé, že téměř každý, kromě javamana samozřejmě, tu evidentně bitové operace zná a nemá s nimi zásadní problém (i když je nechce používat). A to i přesto, že to jak sami tvrdí někteří nikdy nepotřebovali. Celkem by mě zajímalo, jak k tomu přišli? Že by to opravdu patřilo k základům? Ale proč tedy to nepochopitelné obhajování neznalosti? Opravdu se tolik vyplatí zaměstnávat motyky za minimální mzdu, na nějaký js barvičkování tlačítek a potom je buď učit a zvedat mzdu, nebo raději vyhodit, když se něco naučí a chtěly by víc?

Pochybuju, že tě u pozic 80+ bude někdo otravovat se zbytečnostmi typu bitového počítání na papíře. To můžeš zkoušet na lopaty, ale smysl to pořád nemá žádný.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #237 kdy: 08. 09. 2016, 18:03:42 »
Je zajímavé, že téměř každý, kromě javamana samozřejmě, tu evidentně bitové operace zná a nemá s nimi zásadní problém (i když je nechce používat). A to i přesto, že to jak sami tvrdí někteří nikdy nepotřebovali. Celkem by mě zajímalo, jak k tomu přišli? Že by to opravdu patřilo k základům? Ale proč tedy to nepochopitelné obhajování neznalosti? Opravdu se tolik vyplatí zaměstnávat motyky za minimální mzdu, na nějaký js barvičkování tlačítek a potom je buď učit a zvedat mzdu, nebo raději vyhodit, když se něco naučí a chtěly by víc?

Pochybuju, že tě u pozic 80+ bude někdo otravovat se zbytečnostmi typu bitového počítání na papíře. To můžeš zkoušet na lopaty, ale smysl to pořád nemá žádný.
Však taky nikdo nenabízí 80+ absolventům, kterým jsou podobný motykoviny určený. Pokud chce někdo 80+, tak musí mít praxi, pokud má praxi, probírají se na pohovoru jeho minulé projekty a zkušenosti a ne počítání jedniček a nul na papíře, protože se dá předpokládat, že o tom něco ví a v případě potřeby si ochotně vzpomene. Ale to už jsem ti psal.

borekz

  • ****
  • 486
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #238 kdy: 08. 09. 2016, 18:32:10 »
Na úrovni CPU je bitový posun odjakživa rychlejší.
Jak kdy.
Asi od 80386 je nejrychlejší násobení 1,2,4,8. Interně to je asi shift, ale v assembleru se to zapisuje jako násobení konstantou.
Na druhém místě je instrukce shl a na třetím místě imul. Od Pentium 2 trvá násobení jen 4 cykly a propustnost jeden cyklus, takže to asi není třeba řešit. Pro zajímavost, instrukce cyklické rotace přes carry flag (rcr,rcl) trvají na Skylaku 6 cyklů, tedy déle než násobení.

gl

Re:Bitové operace ve vyšších jazycích
« Odpověď #239 kdy: 08. 09. 2016, 18:50:59 »
Na to kašlu.

Jako z Cimrmanů... "O programování už nepište nic... A raději neprogramujte vůbec."  :)

Pojď si poměřit síly v nějaké programátorské soutěži.