Citace od: gamer kdy 09. 09. 2016, 14:50:34Citace od: gl kdy 09. 09. 2016, 14:41:08Pokud chceš posouvat, použiješ posun. Pokud chceš spočítat mocninu 2, můžeš použít umocňování i posun. Posun je asi rychlejší, umocňování je explicitnější a pro přepis matematického vzorce IMHO vhodnější.Posun je výpočet mocniny dvou. Ale NEMŮŽEŠ je libovolně zaměňovat, protože ty operátory dělají úplně jinou matematickou operaci. Jeden z těch operátorů je definovaný jen na integerech a druhý na floatech (i integerech). Občas ty operátory dávají stejné výsledky, ale vypočítají se úplně jinou metodou. Že je v pythonu nějaká optimalizace pro 2**N kde N je integer je irelevantní. Jsou to jiné operátory s jinou funkcí a chovají se i navenek jinak.
Citace od: gl kdy 09. 09. 2016, 14:41:08Pokud chceš posouvat, použiješ posun. Pokud chceš spočítat mocninu 2, můžeš použít umocňování i posun. Posun je asi rychlejší, umocňování je explicitnější a pro přepis matematického vzorce IMHO vhodnější.
Citace od: Kit kdy 09. 09. 2016, 14:58:30Obávám se, že většina nových a moderních jazyků bitové operace má bitové operace implementovány. Nemá smysl je diskvalifikovat kvůli této podmínce.
Citace od: gl kdy 09. 09. 2016, 15:00:42Naposledy. Pokud přepisuji nějaký vzorec, kde vystupuje mocnina dvou, tak požiju mocninu dvou i pokud by měla celočíselný exponent. Klidně se pohoršuj. Když někdo použije posun jedničky, vůbec mi to nevadí. Nejsem fašista jako ty. Abych se pořád pohoršoval nad cizím kódem. Mě zajímá, jestli to funguje. Pro typovou kontrolu používám vhodnější nástroje.
Citace od: gamer kdy 09. 09. 2016, 14:34:29Tento thread dokazuje, že to zjevně není triviální problém a spousta lidí s tím má potíže...
Citace od: javaman (( kdy 09. 09. 2016, 15:05:00Triviální to je, jen zdejší lopaty nechtějí pochopit, že vývojáře vůbec nezajímá.
Citace od: javaman (( kdy 09. 09. 2016, 15:08:58Právě lopaty umí jen tři věci a z toho jedna je bitový posun. Když jim to sebereš, zničíš jim svět. Vývojář má normálně takový záběr, že ho to vůbec nerozhodí, když to neví.
class javaman{ public static void main(String[] args) { if (pow(62) != shift(62)) { System.out.println("javaman je borec"); } if (pow(63) != shift(63)) { System.out.println("javaman je lopata"); } } public static double pow(long exponent) { return Math.pow(2, exponent); } public static double shift(long exponent) { return 1L << exponent; }}
Citace od: gamer kdy 09. 09. 2016, 15:10:40Citace od: javaman (( kdy 09. 09. 2016, 15:08:58Právě lopaty umí jen tři věci a z toho jedna je bitový posun. Když jim to sebereš, zničíš jim svět. Vývojář má normálně takový záběr, že ho to vůbec nerozhodí, když to neví.Už víš, proč jsi lopata? Nebo to přenecháš java compileru?Kód [Vybrat] Rozbalitclass javaman{ public static void main(String[] args) { if (pow(62) != shift(62)) { System.out.println("javaman je borec"); } if (pow(63) != shift(63)) { System.out.println("javaman je lopata"); } } public static double pow(long exponent) { return Math.pow(2, exponent); } public static double shift(long exponent) { return 1L << exponent; }}
Citace od: Kit kdy 09. 09. 2016, 14:58:30Citace od: tisnik kdy 09. 09. 2016, 14:47:58Citace od: Tuxik kdy 09. 09. 2016, 12:36:37Citace od: franto kdy 09. 09. 2016, 10:55:01kokoti uz tady nespamujte. delejte neco uzitecnyho. co kdyby jsme zalozili vlastni forum, ktere by bylo na urovni?Ne, fórum se nezakládá, ale musí se naprogramovat. Vše co bylo v minulosti uděláno je špatně a bylo by dobré si to udělat po svém a dokonale. Kdo do toho jde? By mě zajímalo, na čem by to ztroskotalo, ale předpokládám, že už na výběru jazyka Samozrejme je potreba vybrat predevsim jazyk "novy" a "moderni", tedy BEZ bitovych operaci a podobnych veci z doby kamenne Obávám se, že většina nových a moderních jazyků bitové operace má bitové operace implementovány. Nemá smysl je diskvalifikovat kvůli této podmínce.
Citace od: tisnik kdy 09. 09. 2016, 14:47:58Citace od: Tuxik kdy 09. 09. 2016, 12:36:37Citace od: franto kdy 09. 09. 2016, 10:55:01kokoti uz tady nespamujte. delejte neco uzitecnyho. co kdyby jsme zalozili vlastni forum, ktere by bylo na urovni?Ne, fórum se nezakládá, ale musí se naprogramovat. Vše co bylo v minulosti uděláno je špatně a bylo by dobré si to udělat po svém a dokonale. Kdo do toho jde? By mě zajímalo, na čem by to ztroskotalo, ale předpokládám, že už na výběru jazyka Samozrejme je potreba vybrat predevsim jazyk "novy" a "moderni", tedy BEZ bitovych operaci a podobnych veci z doby kamenne
Citace od: Tuxik kdy 09. 09. 2016, 12:36:37Citace od: franto kdy 09. 09. 2016, 10:55:01kokoti uz tady nespamujte. delejte neco uzitecnyho. co kdyby jsme zalozili vlastni forum, ktere by bylo na urovni?Ne, fórum se nezakládá, ale musí se naprogramovat. Vše co bylo v minulosti uděláno je špatně a bylo by dobré si to udělat po svém a dokonale. Kdo do toho jde? By mě zajímalo, na čem by to ztroskotalo, ale předpokládám, že už na výběru jazyka
Citace od: franto kdy 09. 09. 2016, 10:55:01kokoti uz tady nespamujte. delejte neco uzitecnyho. co kdyby jsme zalozili vlastni forum, ktere by bylo na urovni?
Citace od: balki kdy 09. 09. 2016, 15:20:50Ah to porovnavanie doublov cez "!='' .
Citace od: balki kdy 09. 09. 2016, 15:20:50Citace od: gamer kdy 09. 09. 2016, 15:10:40Citace od: javaman (( kdy 09. 09. 2016, 15:08:58Právě lopaty umí jen tři věci a z toho jedna je bitový posun. Když jim to sebereš, zničíš jim svět. Vývojář má normálně takový záběr, že ho to vůbec nerozhodí, když to neví.Už víš, proč jsi lopata? Nebo to přenecháš java compileru?Kód [Vybrat] Rozbalitclass javaman{ public static void main(String[] args) { if (pow(62) != shift(62)) { System.out.println("javaman je borec"); } if (pow(63) != shift(63)) { System.out.println("javaman je lopata"); } } public static double pow(long exponent) { return Math.pow(2, exponent); } public static double shift(long exponent) { return 1L << exponent; }}Ah to porovnavanie doublov cez "!='' . Ked nadavat javamanovi do lopat, tak aspon menej hlupo.
Citace od: v kdy 09. 09. 2016, 15:24:25nejde 2 na celé číslo v iee754 vyjádřit přesně?
Citace od: v kdy 09. 09. 2016, 15:24:25Citace od: balki kdy 09. 09. 2016, 15:20:50Citace od: gamer kdy 09. 09. 2016, 15:10:40Citace od: javaman (( kdy 09. 09. 2016, 15:08:58Právě lopaty umí jen tři věci a z toho jedna je bitový posun. Když jim to sebereš, zničíš jim svět. Vývojář má normálně takový záběr, že ho to vůbec nerozhodí, když to neví.Už víš, proč jsi lopata? Nebo to přenecháš java compileru?Kód [Vybrat] Rozbalitclass javaman{ public static void main(String[] args) { if (pow(62) != shift(62)) { System.out.println("javaman je borec"); } if (pow(63) != shift(63)) { System.out.println("javaman je lopata"); } } public static double pow(long exponent) { return Math.pow(2, exponent); } public static double shift(long exponent) { return 1L << exponent; }}Ah to porovnavanie doublov cez "!='' . Ked nadavat javamanovi do lopat, tak aspon menej hlupo.nejde 2 na celé číslo v iee754 vyjádřit přesně?
Citace od: gamer kdy 09. 09. 2016, 15:27:39Citace od: v kdy 09. 09. 2016, 15:24:25nejde 2 na celé číslo v iee754 vyjádřit přesně?Jde. Nicméně i tak má ten kód svoje problémy. Balki se akorát chytil elementárního příkladu, který se snažil být co nejjednodušší. Tak jsem zvědavý, jak to udělá lepší.