Citace: gl 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.
Pokud 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ší.
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.
Naposledy. 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.
Tento thread dokazuje, že to zjevně není triviální problém a spousta lidí s tím má potíže...
Triviální to je, jen zdejší lopaty nechtějí pochopit, že vývojáře vůbec nezajímá.
Prá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: javaman (( 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]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: tisnik 09. 09. 2016, 14:47:58Citace: Tuxik 09. 09. 2016, 12:36:37Citace: franto 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: Tuxik 09. 09. 2016, 12:36:37Citace: franto 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: franto 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
kokoti uz tady nespamujte. delejte neco uzitecnyho. co kdyby jsme zalozili vlastni forum, ktere by bylo na urovni?
Ah to porovnavanie doublov cez "!='' .
Citace: gamer 09. 09. 2016, 15:10:40Citace: javaman (( 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]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; }}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: balki 09. 09. 2016, 15:20:50Citace: gamer 09. 09. 2016, 15:10:40Citace: javaman (( 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]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; }}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: v 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ší.