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

Чтобы проверить, является ли число степенью 2 в Python, вы можете использовать следующие методы:

Метод 1: Побитовое И

def is_power_of_two(n):
    if n <= 0:
        return False
    return (n & (n - 1)) == 0

Метод 2: Логарифм

import math
def is_power_of_two(n):
    if n <= 0:
        return False
    power = math.log2(n)
    return power == int(power)

Метод 3: подсчет бит

def is_power_of_two(n):
    if n <= 0:
        return False
    return bin(n).count('1') == 1

Метод 4: сдвиг битов

def is_power_of_two(n):
    if n <= 0:
        return False
    return (n & (n - 1)) == 0 and n != 0

Эти методы проверяют, является ли число степенью 2, проверяя его двоичное представление. Если число представляет собой степень двойки, оно будет иметь только один бит «1», а все остальные биты будут равны «0».