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

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #360 kdy: 09. 09. 2016, 17:09:39 »
A co by pánové řekli na špeky typu:
Kód: [Vybrat]
int x=5;
int y=10;
int z=(x/10)*y;

Na tomhle si vylámalo zuby už dost lidí, typicky při programování grafického prvku typu teploměr.


balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #361 kdy: 09. 09. 2016, 17:12:06 »
A co by pánové řekli na špeky typu:
Kód: [Vybrat]
int x=5;
int y=10;
int z=(x/10)*y;

Na tomhle si vylámalo zuby už dost lidí, typicky při programování grafického prvku typu teploměr.

Na tomto si vylamal zuby uz snad kazdy.

gamer

Re:Bitové operace ve vyšších jazycích
« Odpověď #362 kdy: 09. 09. 2016, 17:15:37 »
Dobre ze ta nepoznam, ty budes nejaky blbsi.
Čemu nerozumíš na větě tvůj kód nefunguje pro záporný exponent? Čekal jsem, že to opravíš, ale místo toho se zmůžeš jenom na nadávky...

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #363 kdy: 09. 09. 2016, 17:16:30 »
Dobre ze ta nepoznam, ty budes nejaky blbsi.
Čemu nerozumíš na větě tvůj kód nefunguje pro záporný exponent? Čekal jsem, že to opravíš, ale místo toho se zmůžeš jenom na nadávky...

v priklade nebol zaporny exponent, ked to chces po tvojom.

v

Re:Bitové operace ve vyšších jazycích
« Odpověď #364 kdy: 09. 09. 2016, 17:16:49 »
Dobre ze ta nepoznam, ty budes nejaky blbsi.
Čemu nerozumíš na větě tvůj kód nefunguje pro záporný exponent? Čekal jsem, že to opravíš, ale místo toho se zmůžeš jenom na nadávky...
použití záporného exponentu z vašeho příkladu neplyne, pokud chcete použití zobecnit, tak platí i balkiho argument proti použití !=


gamer

Re:Bitové operace ve vyšších jazycích
« Odpověď #365 kdy: 09. 09. 2016, 17:22:33 »
použití záporného exponentu z vašeho příkladu neplyne, pokud chcete použití zobecnit, tak platí i balkiho argument proti použití !=
Balkiho argument neplatí, můj příklad funguje s != i pro záporný exponent. Můj příklad je prostě obecnější a přehlednější. Ano, má to chyby, ale je to elementární příklad, má bý to nejjednodušší. Balkiho příklad je nepřehledný a nefunguje.

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #366 kdy: 09. 09. 2016, 17:31:25 »
použití záporného exponentu z vašeho příkladu neplyne, pokud chcete použití zobecnit, tak platí i balkiho argument proti použití !=
Balkiho argument neplatí, můj příklad funguje s != i pro záporný exponent. Můj příklad je prostě obecnější a přehlednější. Ano, má to chyby, ale je to elementární příklad, má bý to nejjednodušší. Balkiho příklad je nepřehledný a nefunguje.

Navrhujem karieru v politike.

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #367 kdy: 09. 09. 2016, 17:49:20 »
Zajímavé... debata o binárních operacích se plynule zvrtla v debatu o neschopnosti posoudit vhodnost libovolného postupu v libovolné situaci. To už si asi děláte srandu, ne? Snad pokud pracuju s celými čísly, tak to dělám tak, aby mi vždy vyšlo celé číslo. Nebo je tu někdo, kdo raději na každou kravinu používá double "pro jistotu", aby náhodou 1+1 nebylo 1.999999999?
A co by pánové řekli na špeky typu:

Kód: [Vybrat]
int x=5;
int y=10;
int z=(x/10)*y;

a

Kód: [Vybrat]
int x=5;
int y=10;
int z=(x*y)/10;

Závorky jsou tam navíc, vím o tom, ale aby se někdo nemusel učit priority operací, který nikdy předtím nepotřeboval, tak jsem je tam pro názornost dal.

A jakej bude asi výsledek?

Prve bude z=0.

To druhe je nejaky chytak, tam mi vychaza z=5.

Mi to vychází stejně a jako chyták mi to nepřijde. Prostě jen musíte vědět, jak se zachází při matematických operacích s celými čísly.

A ano, ty závorky jsou tam zcela zbytečné a jestli s tím někdo má bez závorek problém, je to čistě jeho problém s jeho neznalostí :-)

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #368 kdy: 09. 09. 2016, 17:58:31 »
Zajímavé... debata o binárních operacích se plynule zvrtla v debatu o neschopnosti posoudit vhodnost libovolného postupu v libovolné situaci. To už si asi děláte srandu, ne? Snad pokud pracuju s celými čísly, tak to dělám tak, aby mi vždy vyšlo celé číslo. Nebo je tu někdo, kdo raději na každou kravinu používá double "pro jistotu", aby náhodou 1+1 nebylo 1.999999999?
A co by pánové řekli na špeky typu:

Kód: [Vybrat]
int x=5;
int y=10;
int z=(x/10)*y;

a

Kód: [Vybrat]
int x=5;
int y=10;
int z=(x*y)/10;

Závorky jsou tam navíc, vím o tom, ale aby se někdo nemusel učit priority operací, který nikdy předtím nepotřeboval, tak jsem je tam pro názornost dal.

A jakej bude asi výsledek?

Prve bude z=0.

To druhe je nejaky chytak, tam mi vychaza z=5.

Mi to vychází stejně a jako chyták mi to nepřijde. Prostě jen musíte vědět, jak se zachází při matematických operacích s celými čísly.

A ano, ty závorky jsou tam zcela zbytečné a jestli s tím někdo má bez závorek problém, je to čistě jeho problém s jeho neznalostí :-)

Pri  z = 10 / 2 / 5 by som si nebol taky isty. Delenie ma prednost, co teraz :D

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #369 kdy: 09. 09. 2016, 17:59:44 »
Zajímavé... debata o binárních operacích se plynule zvrtla v debatu o neschopnosti posoudit vhodnost libovolného postupu v libovolné situaci. To už si asi děláte srandu, ne? Snad pokud pracuju s celými čísly, tak to dělám tak, aby mi vždy vyšlo celé číslo. Nebo je tu někdo, kdo raději na každou kravinu používá double "pro jistotu", aby náhodou 1+1 nebylo 1.999999999?
A co by pánové řekli na špeky typu:

Kód: [Vybrat]
int x=5;
int y=10;
int z=(x/10)*y;

a

Kód: [Vybrat]
int x=5;
int y=10;
int z=(x*y)/10;

Závorky jsou tam navíc, vím o tom, ale aby se někdo nemusel učit priority operací, který nikdy předtím nepotřeboval, tak jsem je tam pro názornost dal.

A jakej bude asi výsledek?

Prve bude z=0.

To druhe je nejaky chytak, tam mi vychaza z=5.

Mi to vychází stejně a jako chyták mi to nepřijde. Prostě jen musíte vědět, jak se zachází při matematických operacích s celými čísly.

A ano, ty závorky jsou tam zcela zbytečné a jestli s tím někdo má bez závorek problém, je to čistě jeho problém s jeho neznalostí :-)

Pri  z = 10 / 2 / 5 by som si nebol taky isty. Delenie ma prednost, co teraz :D

Vlastne to je ten prvy priklad.

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #370 kdy: 09. 09. 2016, 18:16:42 »
Pri  z = 10 / 2 / 5 by som si nebol taky isty. Delenie ma prednost, co teraz :D

Výraz se vyhodnocuje zleva doprava. Násobení a dělení má stejnou prioritu. z==1.

Prefixový či postfixový zápis to řeší i bez priorit.

gamer

Re:Bitové operace ve vyšších jazycích
« Odpověď #371 kdy: 09. 09. 2016, 18:23:09 »
Citace: balki
Navrhujem karieru v politike.
[/quote

A nějaký technický argument by nebyl?

Abych to odlehčil, do toho tvého kódu se navážím, protože sis honil triko na elementárním přïkladu, který je maximálně osekaný a neřeší okrajové podmínky. Jak vidíš, není tak jednoduché jít s kůží na trh, tvůj kód
má zase jiné problémy. Kdyby ten přïklad měl být robustní, byl by delší a jeho účel (operace << a pow nelze zaměňovat), by se v tom ztrácel.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #372 kdy: 09. 09. 2016, 18:30:15 »
Ach jo, klasika. Jak se objeví konkrétní příklad, javouš zmizí a vrátí se až je po všem, aby mohl zase házet lopatou. :D

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #373 kdy: 09. 09. 2016, 18:42:25 »
Citace: balki
Navrhujem karieru v politike.
[/quote

A nějaký technický argument by nebyl?

Abych to odlehčil, do toho tvého kódu se navážím, protože sis honil triko na elementárním přïkladu, který je maximálně osekaný a neřeší okrajové podmínky. Jak vidíš, není tak jednoduché jít s kůží na trh, tvůj kód
má zase jiné problémy. Kdyby ten přïklad měl být robustní, byl by delší a jeho účel (operace << a pow nelze zaměňovat), by se v tom ztrácel.

Mno dobre, ale porovnavat  double "!=" je fuj, to je ako by ste srali v kostole, alebo tak. Za urcitych podmienok sa to tiez moze.

Ja som to vypichol, lebo priklad bol navazka do javamana. :)  Mne bolo jasne, o co ide. Ucelom bolo rypat.

tisnik

Re:Bitové operace ve vyšších jazycích
« Odpověď #374 kdy: 09. 09. 2016, 18:45:26 »
nejde 2 na celé číslo v iee754 vyjádřit přesně?

Staci spravit nejake matematicke operacie, a ked clovek caka 3, ma 2.99999999999 a je v pr...

Které? Sčítání, odčítání, násobení a dokonce v mnohých případech i dělení je bezproblémové.

Scitani odcitani ve chvili, kdy je rozdil exponentu vetsi nez pocet bitu pro mantissu?
Mozna se +- mylim o jeden bit