Выбор ответа Junior Биты обновлено

Степень двойки

Вопрос

Какое выражение проверяет, что положительное целое n является степенью двойки?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: (n & (n - 1)) === 0. У степени двойки ровно один единичный бит. n - 1 переворачивает его и все младшие биты, поэтому n & (n - 1) равно 0.

Варианты ответа

  1. n % 2 === 0
  2. (n | (n - 1)) === 0
  3. n >> 1 === 0
  4. (n & (n - 1)) === 0правильный ответ

Разбор

У степени двойки ровно один единичный бит. n - 1 переворачивает его и все младшие биты, поэтому n & (n - 1) равно 0. Скобки обязательны: === в JS имеет приоритет выше &.

  • Чётность не проверяет степень: 6 чётно.
  • | даёт 0 только для двух нулей.
  • n >> 1 === 0 истинно только для 0 и 1.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.