⚡️ Как проверить число на степень двойки питон - Простые способы и советы
Чтобы проверить, является ли число степенью двойки в Python, можно использовать логическую операцию "побитовое И" с предыдущим числом.
num = 16 # Ваше число
if num & (num - 1) == 0:
print("Число является степенью двойки")
else:
print("Число не является степенью двойки")
Детальный ответ
Как проверить число на степень двойки в Python
Иногда нам может понадобиться проверить, является ли заданное число степенью двойки. В этой статье мы рассмотрим, как это сделать с помощью языка программирования Python.
Метод 1: Проверка битовым сдвигом
Одним из способов проверить число на степень двойки является использование битового сдвига. Мы можем сдвинуть биты числа вправо до тех пор, пока не получим единицу в самом младшем разряде. Если после этого все остальные биты обнуляются, то число было степенью двойки.
def is_power_of_two(num):
if num <= 0:
return False
while num > 1:
if num % 2 != 0:
return False
num = num >> 1
return True
Этот код проверяет, является ли число num
степенью двойки. Если число больше нуля и после выполнения битового сдвига все остальные биты обнуляются, то функция возвращает True
. В противном случае функция возвращает False
.
Метод 2: Использование битового представления
Еще один способ проверить число на степень двойки - это использование его битового представления. Если число является степенью двойки, то у него должен быть только один установленный бит в его бинарном представлении. Мы можем использовать операцию побитового И для проверки.
def is_power_of_two(num):
if num <= 0:
return False
return num & (num - 1) == 0
Этот код проверяет, является ли число num
степенью двойки. Если число больше нуля, то функция возвращает True
, если результат побитового И числа с его предшественником равен нулю. В противном случае функция возвращает False
.
Пример использования
Давайте рассмотрим пример использования наших функций:
num = 8
if is_power_of_two(num):
print(f"{num} является степенью двойки.")
else:
print(f"{num} не является степенью двойки.")
В данном примере мы проверяем, является ли число 8 степенью двойки. Поскольку результат оказывается истинным, будет выведено "8 является степенью двойки".