Теория
Битовый сдвиг двигает все биты числа влево или вправо. Сдвиг влево на \(n\) позиций умножает число на \(2^n\): \(5 << 2 = 20\). Сдвиг вправо делит на степень двойки, отбрасывая младшие биты; логический сдвиг вправо всегда заполняет освободившиеся позиции нулями.
Сдвиги — быстрая альтернатива умножению и делению на степени двойки, их активно использует компилятор. Арифметический сдвиг вправо сохраняет знак, копируя старший бит, логический — нет.
Важно: сдвиг влево может потерять старшие биты, вышедшие за разрядность, — результат обрезается.
Пример с решением
- Условие. Сдвиньте число 5 влево на 2 позиции.
- Формула. \(x << n = x \times 2^n\).
- Подстановка. \(5 << 2 = 5 \times 2^2\).
- Вычисление. \(5 \times 4 = 20\).
- Ответ. \(5 << 2 = 20\). Калькулятор с числом 5, направлением «влево» и сдвигом 2 покажет 20; сдвиг вправо на 2 вернёт 1.
Главное
- Влево: умножение на \(2^n\); вправо: деление на \(2^n\).
- Логический сдвиг вправо заполняет нулями.
- Вышедшие за разрядность биты теряются.