Чтобы проверить, является ли число степенью 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».