766
Vývoj / Re:Bitové operace ve vyšších jazycích
« kdy: 08. 09. 2016, 19:44:41 »Ano, java vyrábí pro každou platformu bugy a díry zvlášť. To, že něco neumíš, prostě neokecáš. JVM, stejně jako fyzický HW pracuje s jedničkama a nulama a jestli se ti to nelíbí, zůstaň u své oblíbené lopaty a nepleť se mezi inteligentnější lidi. Stejně to z tebe lepšího člověka neudělá, akorát jseš víc a víc za šaška.To násobení se dokonce kompilovalo jako posuny, to byla mikrooptimalizace některých kompilerů. Jinak v průběhu doby se děly různé věci, byly drobné rozdíly mezi Intel, AMD, Cyrixem a nevím, kdo ještě to kopíroval. V pentiích byly floating point operace rychlejší než celočíselné atd atd...Na úrovni CPU je bitový posun odjakživa rychlejší.Jak kdy.
Asi od 80386 je nejrychlejší násobení 1,2,4,8. Interně to je asi shift, ale v assembleru se to zapisuje jako násobení konstantou.
Na druhém místě je instrukce shl a na třetím místě imul. Od Pentium 2 trvá násobení jen 4 cykly a propustnost jeden cyklus, takže to asi není třeba řešit. Pro zajímavost, instrukce cyklické rotace přes carry flag (rcr,rcl) trvají na Skylaku 6 cyklů, tedy déle než násobení.
A tohle Java dělá za mě, takže se můžu soustředit na opravdovou práci. Lopaty budou přemýšlet, jestli použít posun
