Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: bitwise shift, right shift, bitwise operator, binary, integer division

Для чего используется побитовая операция >> ?

Вопрос проверяет понимание побитового сдвига вправо (>>) и его применения для оптимизации операций деления на степень двойки или работы с битовыми флагами.

Короткий ответ

Побитовая операция >> (сдвиг вправо) перемещает все биты числа вправо на указанное количество позиций. Это эквивалентно целочисленному делению числа на 2 в степени сдвига. Например, 8 >> 2 равно 2, так как 8 / 4 = 2. Она часто используется для быстрых вычислений, работы с битовыми масками или упаковки данных.

Длинный ответ

Побитовый сдвиг вправо (>>) — это операция, которая перемещает биты целого числа вправо, отбрасывая младшие биты и заполняя старшие биты в зависимости от знака числа (для знаковых чисел заполнение копирует знаковый бит, для беззнаковых — нулями). Основное применение — эффективное выполнение операций, которые можно выразить через деление на степени двойки.

Как это работает

Рассмотрим число 12 в двоичной системе: 1100. При сдвиге вправо на 1 позицию (12 >> 1) получаем 0110, что равно 6 в десятичной системе. Это соответствует делению 12 на 2. Сдвиг на 2 позиции (12 >> 2) даёт 0011 (3), что равно 12 / 4.

Примеры кода

// Пример на JavaScript
let a = 16; // 10000 в двоичной
console.log(a >> 1); // 8 (1000)
console.log(a >> 2); // 4 (100)
console.log(a >> 3); // 2 (10)

// Использование для извлечения битов
let flags = 0b101101; // 45 в десятичной
let thirdBit = (flags >> 2) & 1; // Сдвигаем вправо на 2, затем маскируем младший бит
console.log(thirdBit); // 1 (третий бит был 1)

// Оптимизация: замена деления на 2
let value = 100;
let half = value >> 1; // Быстрее, чем Math.floor(value / 2)
console.log(half); // 50

Где применяется

  • Оптимизация производительности: В низкоуровневом коде (например, встроенные системы, игры) сдвиг используется вместо деления для ускорения вычислений, когда делитель — степень двойки.
  • Работа с битовыми флагами: В системах, где состояния или параметры упакованы в биты (например, права доступа, настройки протоколов).
  • Обработка данных: В алгоритмах сжатия, криптографии или при разборе двоичных форматов (например, извлечение значений из байтовых потоков).

Вывод: Операция >> полезна, когда требуется эффективно делить целые числа на 2, 4, 8 и т.д., или манипулировать отдельными битами в компактных структурах данных, особенно в контекстах, критичных к производительности.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • C

Ключевые слова

#bitwise shift

#right shift

#bitwise operator

#binary

#integer division

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию