Методы проверки, является ли число степенью двойки

Чтобы проверить, является ли число степенью двойки, можно использовать различные методы. Вот некоторые часто используемые подходы:

  1. Метод 1 – Побитовое И: Вы можете проверить, является ли число степенью двойки, выполнив побитовую операцию И между числом и его уменьшением (число – 1). Если результат равен нулю, то число представляет собой степень двойки.

    Пример кода на Python:

    def is_power_of_two(num):
       return num & (num - 1) == 0
  2. Метод 2. Логарифм. Другой способ определить, является ли число степенью двойки, — это логарифмирование числа с основанием 2. Если результатом является целое число, то число является степенью двойки..

    Пример кода на Python:

    import math
    def is_power_of_two(num):
       return math.log2(num).is_integer()
  3. Метод 3 — Подсчет битов: вы можете подсчитать количество установленных битов (бит со значением 1) в двоичном представлении числа. Если установлен только один бит, то число представляет собой степень двойки.

    Пример кода на Python:

    def is_power_of_two(num):
       return bin(num).count('1') == 1
  4. Метод 4 – сдвиг битов. Этот метод включает в себя неоднократное смещение числа вправо, пока оно не станет 1. Если после сдвига число становится 1, то оно представляет собой степень двойки.

    Пример кода на Python:

    def is_power_of_two(num):
       if num == 0:
           return False
       while num != 1:
           if num % 2 != 0:
               return False
           num = num // 2
       return True
  5. Метод 5 — Побитовое исключающее ИЛИ. Выполняя побитовую операцию исключающего ИЛИ между числом и его уменьшением, вы можете проверить, равен ли результат числу плюс его уменьшение. Если это правда, то число представляет собой степень двойки.

    Пример кода на Python:

    def is_power_of_two(num):
       return num ^ (num - 1) == num + (num - 1)