Для чего битовые сдвиги вообще существуют? А потому, что они выполняются очень простой схемой — сдвиговым регистром. И вместо того, чтобы проводить умножение (поначалу это было десятки тактов), подключаем этот самый регистр к регистрам процессора, и выполним всё за один такт. Существовала даже программа, генерирующая быстрый код умножения на константу, например, 6 — сдвинуть, сложить и ещё раз сдвинуть. И это в своё время было быстрее, чем mul — а ведь сейчас мы без зазрения совести пишем mul eax, 6.
Чего могут сдвиги, но со скрипом реализуется через всё остальное? Доступ к i-му биту.
i-й бит = (x >> i) & 1
По правилам хорошего программистского тона умножение, даже на 2 или на 4, пишется как обычное * (>> пишут, если компилятор непроходимо туп и умножение медленнее). А вот сдвиги — именно их, а не умножение — пишут, когда работают с битовыми полями.
Есть также специальные сдвиги.
* Арифметический сдвиг вправо (левый совпадает с обычным) — для чисел со знаком.
* Сдвиг-вращение — в основном для криптографии.
* Сдвиг-вращение через регистр флагов — в основном для длинной арифметики.