Перечислите целочисленные битовые операторы

Основные битовые операторы:

  • & – операция побитовое И;
  • | – операция побитовое ИЛИ;
  • ^ – операция побитовое исключающее ИЛИ. У этой операции есть следующие особенности: при применении его к одному числу вторично, с тем же параметром, возвращает первоначальное значение числа. Также с его помощью можно произвести обмен значений двух переменных, не вводя третью и без риска переполнения, так называемый XOR-обмен;
  • ~ – оператор побитового отрицания, все биты исходного числа инвертируются (те что были равны 1 становятся равны 0, те что равны 0 будут равны 1)
  • >> – сдвиг всех битов числа вправо, с учётом знака числа (операция a >> b выполняет деление числа а на 2 в степени b, округление при этом происходит вниз, то есть для положительных чисел эквивалентно a / pow(2, b), для отрицательных, не делящихся на a / pow(2, b) равно a / pow(2, b)-1;
  • <<– сдвиг всех битов числа влево, с учётом знака числа (операция a << b выполняет умножение числа а на 2 в степени b);
  • >>>– сдвиг всех битов числа вправо, без учёта знака числа.

Беззнаковый сдвиг влево не определён в Java, так как его действие эквивалентно знаковому сдвигу влево.

При выполнении операции беззнакового сдвига вправо самый левый бит заполняется 0 (самый левый бит определяет знак числа 0 – положительное и 1 — отрицательное), в то время как при выполнении обычного сдвига вправо последний бит не меняется.

Во всех операциях сдвига первый параметр – это число, которое нужно сдвинуть, а второй – на какое количество бит. Второй оператор не может быть больше, чем количество доступных разрядов (для int – это 31, long – 63). Если передать значение, превышающее количество разрядов, то будет использованы только младшие. Например, для переменной типа int операция x << 36 эквивалентна x << 5.

Готовьтесь к работе в команде

AI Sprints — обучение профессиям с ИИ

Освойте Agile, Scrum и Kanban. Поймёте, как устроены процессы в IT-командах — придёте на работу подготовленным

  • Методологии: Agile и Scrum — как организованы спринты и роли в команде
  • Инструменты: Jira, Git Flow, код-ревью — что используют в продакшене
  • Результат: понимаете процессы и готовы к работе в IT-команде
Перейти на платформу →
🎁 Бесплатно · 5 дней

AI Challenge — собери чат-бота за 5 дней

Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.

  • Практика с первого дня, без теории «в стол»
  • Готовый проект в портфолио к концу недели
  • Старт в любой день — учитесь в своём темпе
Начать бесплатно →
Готовьтесь к работе в команде AI Sprints — обучение профессиям с ИИ
Перейти на платформу →

Бесплатная диагностика с сениор разработчиком

Запишитесь на консультацию — перезвоним в рабочие часы

Или свяжитесь удобным способом

Вам также может быть интересно

Узнать подробнее
Курс AI Sprints

Глубокое обучение Android разработке с 0 до получения оффера. Только персональная практика с гарантией получения продуктового опыта.

Курс AI Sprints - Глубокое <strong>обучение Android разработке с 0 до получения оффера</strong>. Только персональная практика с гарантией получения продуктового опыта.
Узнать подробнее
Узнать подробнее
Практикум по Kotlin

Изучение Котлин с 0 для профессиональной разработки. Личный ментор и разбор кода задач через git-flow.

Практикум по Kotlin - Изучение Котлин <strong>с 0 для профессиональной разработки</strong>. Личный ментор и разбор кода задач через git-flow.
Узнать подробнее
Узнать подробнее
Бесплатные уроки по Kotlin разработке

Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.

Бесплатные уроки по Kotlin разработке - <span>Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.</span>
Узнать подробнее
Узнать подробнее
Onboarding в разработку

Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь

Onboarding в разработку - <span>Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь</span>
Узнать подробнее
Узнать подробнее
Обучающий Kotlin телеграм бот (с тестами)

Ваш основной инструмент для изучения основ языка. Бесплатные тесты и практика внутри.

Обучающий Kotlin телеграм бот (с тестами) - Ваш основной <span>инструмент для изучения основ языка.</span> Бесплатные тесты и практика внутри.
Узнать подробнее
Узнать подробнее
Бесплатные уроки по Android разработке

Самостоятельное обучение разработке Андроид приложений. Понятные видеоуроки с разжеванными примерами.

Бесплатные уроки  по Android разработке - Самостоятельное <span>обучение разработке Андроид приложений.</span> Понятные видеоуроки с разжеванными примерами.
Узнать подробнее
Узнать подробнее
Курс по UI/Unit тестированию

Для ручных тестировщиков, которые готовы осваивать автотесты с использованием актуального стека технологий. [в разработке]

Курс по UI/Unit тестированию - Для ручных тестировщиков, которые <span>готовы осваивать автотесты</span> с использованием актуального стека технологий. [в разработке]
Узнать подробнее
Узнать подробнее
Обучающий Android телеграм бот (с тестами)

Бесплатные теоретические тесты для самопроверки. А также информер на практических спринтах по Android.

Обучающий Android телеграм бот (с тестами) - Бесплатные <span>теоретические тесты для самопроверки.</span> А также информер на практических спринтах по Android.
Узнать подробнее
ИИ-ментор код-ревью и голосовые собесы
Открыть