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

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #375 kdy: 09. 09. 2016, 18:46:34 »
Citace od: Tuxik 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

Pozoruje, ako to tu hori, sedi za kompom a zerie pukance :)


Radovan.

Re:Bitové operace ve vyšších jazycích
« Odpověď #376 kdy: 09. 09. 2016, 18:52:59 »
Citace od: Kit kdy 09. 09. 2016, 18:16:42
Citace od: balki kdy 09. 09. 2016, 17:58:31
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.
10/5(1+1)

A teď se předveď ;D

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #377 kdy: 09. 09. 2016, 19:02:13 »
Citace od: tisnik kdy 09. 09. 2016, 18:45:26
Citace od: Kit kdy 09. 09. 2016, 15:41:18
Citace od: balki kdy 09. 09. 2016, 15:30:30
Citace od: v kdy 09. 09. 2016, 15:24:25
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

To jsem si mohl myslet, že přijdeš s těmito limitními stavy. Jasně, v takových případech už mé tvrzení neplatí.

IEEE 754 de facto pracuje s racionálními čísly, u kterých je jmenovatel vždy nějaká mocnina dvou. Při velkých rozdílech mezi exponenty se občas nějaká část informace ztratí.

Tuxik

  • *****
  • 1 473
Re:Bitové operace ve vyšších jazycích
« Odpověď #378 kdy: 09. 09. 2016, 19:08:58 »
Ještě mě napadá jedna věc. Někdo tvrdil, že bitové posuny jsou nepřehledné, ale když se nad tím zamyslíte, jak třeba násobíte deseti z hlavy? Sčítáte číslo desetkrát, nebo jen přidáte nulu?

gl

Re:Bitové operace ve vyšších jazycích
« Odpověď #379 kdy: 09. 09. 2016, 19:18:44 »
Citace od: Tuxik kdy 09. 09. 2016, 19:08:58
Ještě mě napadá jedna věc. Někdo tvrdil, že bitové posuny jsou nepřehledné, ale když se nad tím zamyslíte, jak třeba násobíte deseti z hlavy? Sčítáte číslo desetkrát, nebo jen přidáte nulu?

A jak to násobní deseti zapisuješ?


Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #380 kdy: 09. 09. 2016, 19:25:18 »
Citace od: Radovan. kdy 09. 09. 2016, 18:52:59
Citace od: Kit kdy 09. 09. 2016, 18:16:42
Citace od: balki kdy 09. 09. 2016, 17:58:31
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.
10/5(1+1)

A teď se předveď ;D

Forth: 10 5 / 1 1 + * . bye
Lisp: (* (/ 10 5) (+ 1 1))

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #381 kdy: 09. 09. 2016, 19:30:47 »
Citace od: gl kdy 09. 09. 2016, 19:18:44
Citace od: Tuxik kdy 09. 09. 2016, 19:08:58
Ještě mě napadá jedna věc. Někdo tvrdil, že bitové posuny jsou nepřehledné, ale když se nad tím zamyslíte, jak třeba násobíte deseti z hlavy? Sčítáte číslo desetkrát, nebo jen přidáte nulu?

A jak to násobní deseti zapisuješ?

Při násobení z hlavy se zapisuje až výsledek. Prostě připíšeš nulu nebo posuneš desetinnou čárku.

Tuxik

  • *****
  • 1 473
Re:Bitové operace ve vyšších jazycích
« Odpověď #382 kdy: 09. 09. 2016, 19:41:11 »
Citace od: gl kdy 09. 09. 2016, 19:18:44
Citace od: Tuxik kdy 09. 09. 2016, 19:08:58
Ještě mě napadá jedna věc. Někdo tvrdil, že bitové posuny jsou nepřehledné, ale když se nad tím zamyslíte, jak třeba násobíte deseti z hlavy? Sčítáte číslo desetkrát, nebo jen přidáte nulu?

A jak to násobní deseti zapisuješ?
Většinou jako x<<3+x<<1 (coz bylo mimochodem ještě na 386ce rychlejší, než MUL), ale někdy i jako 3.3333333*x*3, zaleží to na množství alkoholu v krvi :D
Jinak ho nezapisuju nijak, buď řeším něco, co zapsal někdo jiný, nebo píšu rovnou výsledek vypočítány posunem v hlavě. Každopádně tuto operaci předávám osobní neuronové výpočetní jednotce jako posun.

tisnik

Re:Bitové operace ve vyšších jazycích
« Odpověď #383 kdy: 09. 09. 2016, 19:45:13 »
Citace od: Kit kdy 09. 09. 2016, 19:02:13
Citace od: tisnik kdy 09. 09. 2016, 18:45:26
Citace od: Kit kdy 09. 09. 2016, 15:41:18
Citace od: balki kdy 09. 09. 2016, 15:30:30
Citace od: v kdy 09. 09. 2016, 15:24:25
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

To jsem si mohl myslet, že přijdeš s těmito limitními stavy. Jasně, v takových případech už mé tvrzení neplatí.

IEEE 754 de facto pracuje s racionálními čísly, u kterých je jmenovatel vždy nějaká mocnina dvou. Při velkých rozdílech mezi exponenty se občas nějaká část informace ztratí.

Ja jsem vedel, ze ty to budes vedet, nicmene pro nekoho to muze by dobra lekce (developeri ridiciho systemu Arianne by mohli vypravet :)

Radovan.

Re:Bitové operace ve vyšších jazycích
« Odpověď #384 kdy: 09. 09. 2016, 20:08:38 »
Citace od: Kit kdy 09. 09. 2016, 19:25:18
Citace od: Radovan. kdy 09. 09. 2016, 18:52:59
Citace od: Kit kdy 09. 09. 2016, 18:16:42
Citace od: balki kdy 09. 09. 2016, 17:58:31
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.
10/5(1+1)

A teď se předveď ;D

Forth: 10 5 / 1 1 + * . bye
Lisp: (* (/ 10 5) (+ 1 1))
Hm, špatně. Dvakrát špatně.

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #385 kdy: 09. 09. 2016, 20:16:04 »
Citace od: tisnik kdy 09. 09. 2016, 19:45:13
Ja jsem vedel, ze ty to budes vedet, nicmene pro nekoho to muze by dobra lekce (developeri ridiciho systemu Arianne by mohli vypravet :)

Přesně s tímto jsem se setkal, když jsem si udělal prototyp na metodu Runge-Kutta 4. řádu a zkoušel jsem vliv na výsledek, pokud budu zdvojnásobovat počet kroků. Zpočátku se přesnost zvyšovala, od určitého počtu kroků však začala klesat. Na vině byla samozřejmě nepřesná kumulace kroků h. Po úpravě algoritmu už k tomu nedocházelo.

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #386 kdy: 09. 09. 2016, 20:18:07 »
Citace od: Radovan. kdy 09. 09. 2016, 20:08:38
Citace od: Kit kdy 09. 09. 2016, 19:25:18
Citace od: Radovan. kdy 09. 09. 2016, 18:52:59
10/5(1+1)

A teď se předveď ;D

Forth: 10 5 / 1 1 + * . bye
Lisp: (* (/ 10 5) (+ 1 1))
Hm, špatně. Dvakrát špatně.

V tom případě to máš i ty špatně, protože ve všech případech je správným výsledkem číslo 4.

balki

Re:Bitové operace ve vyšších jazycích
« Odpověď #387 kdy: 09. 09. 2016, 20:25:20 »
Citace od: Kit kdy 09. 09. 2016, 20:18:07
Citace od: Radovan. kdy 09. 09. 2016, 20:08:38
Citace od: Kit kdy 09. 09. 2016, 19:25:18
Citace od: Radovan. kdy 09. 09. 2016, 18:52:59
10/5(1+1)

A teď se předveď ;D

Forth: 10 5 / 1 1 + * . bye
Lisp: (* (/ 10 5) (+ 1 1))
Hm, špatně. Dvakrát špatně.

V tom případě to máš i ty špatně, protože ve všech případech je správným výsledkem číslo 4.

Imho syntax error :)  Alebo 2 2.

javaman ((

Re:Bitové operace ve vyšších jazycích
« Odpověď #388 kdy: 09. 09. 2016, 20:43:45 »
Citace od: Tuxik 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

Tak já vůbec nechápu, co pořád řešíte :D Nikdy jsem to nepotřeboval a lopaty to milují. Nechápu...

Tuxik

  • *****
  • 1 473
Re:Bitové operace ve vyšších jazycích
« Odpověď #389 kdy: 09. 09. 2016, 20:47:51 »
Citace od: javaman (( kdy 09. 09. 2016, 20:43:45
Citace od: Tuxik 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

Tak já vůbec nechápu, co pořád řešíte :D Nikdy jsem to nepotřeboval a lopaty to milují. Nechápu...
Děkuju :D