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 »
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 »
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 »
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
    • Zobrazit profil
    • E-mail
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 »
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 »
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

Kód: [Vybrat]
Forth: 10 5 / 1 1 + * . bye
Kód: [Vybrat]
Lisp: (* (/ 10 5) (+ 1 1))

Kit

Re:Bitové operace ve vyšších jazycích
« Odpověď #381 kdy: 09. 09. 2016, 19:30:47 »
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
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #382 kdy: 09. 09. 2016, 19:41:11 »
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 »
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 »
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

Kód: [Vybrat]
Forth: 10 5 / 1 1 + * . bye
Kód: [Vybrat]
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 »
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 »
10/5(1+1)

A teď se předveď ;D

Kód: [Vybrat]
Forth: 10 5 / 1 1 + * . bye
Kód: [Vybrat]
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 »
10/5(1+1)

A teď se předveď ;D

Kód: [Vybrat]
Forth: 10 5 / 1 1 + * . bye
Kód: [Vybrat]
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 »
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
    • Zobrazit profil
    • E-mail
Re:Bitové operace ve vyšších jazycích
« Odpověď #389 kdy: 09. 09. 2016, 20:47:51 »
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