Вопросы к Поиску с Алисой
В современных компиляторах оптимизация кода с помощью операторов битового сдвига происходит следующим образом: компилятор заменяет операции целочисленного умножения на степени двойки (2^n) битовым сдвигом. alexgyver.ru Например, val * 16 выполняется в два раза быстрее, чем val * 12, потому что будет заменена на val << 4. alexgyver.ru
Также компилятор может заменять операции целочисленного деления, где делитель является константой или числом, битовым сдвигом, если делитель состоит из степени двойки (2 4, 8, 16, 32, 64, 128…). alexgyver.ru Для этого нужно заменить деление на 2^n сдвигом вправо на n. alexgyver.ru
Это происходит потому, что операции битового сдвига намного быстрее сопоставляются с низкоуровневыми операциями центрального процессора. www.baeldung.com