Почему в Java и C # есть операторы битового сдвига?

Разница между целочисленным умножением (временно забывая о делении) все еще в пользу сдвига, и если да, то насколько велика разница?

Это просто кажется такой уж большой низкоуровневая оптимизация, даже если вы этого хотите, не должен ли компилятор байт-кода (C # / Java) или jit ловить ее в большинстве случаев?

Примечание: я тестировал скомпилированный вывод для C # (с версией компилятора gmcs Mono C # 2.6.7.0), а примеры умножения не http://csharp.pastebin.com/hcrRnPrb

cil http://csharp.pastebin.com/0js9F2c1

PS Я забыл, как может быть полезно использовать его для байтов, но все еще возникают проблемы с его использованием для Numbers.

5
задан Roman A. Taycher 1 October 2010 в 05:34
поделиться