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

Чтобы проверить, является ли число степенью двойки в Python, мы можем использовать побитовую операцию "И" между числом и его предшествующим числом. Если результат равен нулю и число больше нуля, то число является степенью двойки.


def is_power_of_two(num):
    return num & (num - 1) == 0 and num > 0

num = 16
if is_power_of_two(num):
    print(f"{num} является степенью двойки")
else:
    print(f"{num} не является степенью двойки")

Детальный ответ

Как проверить, что число является степенью двойки в Python

В программировании часто возникает необходимость определить, является ли заданное число степенью двойки. В Python есть несколько способов проверки этого условия. Давайте рассмотрим несколько примеров кода.

1. С использованием битовых операций

def is_power_of_two(n):
    if n == 0:
        return False
    while n != 1:
        if n % 2 != 0:
            return False
        n = n // 2
    return True

number = 16
if is_power_of_two(number):
    print(f"{number} является степенью двойки.")
else:
    print(f"{number} не является степенью двойки.")

В этом примере мы используем битовую операцию «И» (AND) для проверки числа. Если число является степенью двойки, то оно должно иметь только одну единичную битовую запись. В цикле мы делим число на 2 до тех пор, пока оно не станет равным 1. Если в процессе деления число становится нечетным, то оно не является степенью двойки. Если же число после всех делений становится равным 1, то оно является степенью двойки.

2. С использованием функции битового сдвига

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

number = 16
if is_power_of_two(number):
    print(f"{number} является степенью двойки.")
else:
    print(f"{number} не является степенью двойки.")

В этом примере мы используем битовый сдвиг для проверки числа. Если число является степенью двойки, то при вычитании единицы у него должен получиться ноль. Если это условие выполняется, то число является степенью двойки.

3. С использованием математического свойства

import math

def is_power_of_two(n):
    if n <= 0:
        return False
    return math.log2(n).is_integer()

number = 16
if is_power_of_two(number):
    print(f"{number} является степенью двойки.")
else:
    print(f"{number} не является степенью двойки.")

В этом примере мы используем математическое свойство степеней двойки. Если логарифм числа по основанию 2 является целым числом, то это число является степенью двойки.

Теперь у вас есть несколько способов проверить, является ли число степенью двойки в Python. Выберите подходящий для вашей задачи и продолжайте программировать!

Видео по теме

Решение задачи "Это степень двойки?"

Как узнать степень числа Python

Находим степени двойки в python (анонимная функция) #short

Похожие статьи:

🔧 Как установить word cloud python для создания красочных облаков слов

🔍 Как найти количество чисел в числе в Питоне? Узнайте сейчас!

📸Как отправить картинку в Телеграмме с помощью Python Telebot?💻

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

🐍 Питон: Словарь где ключ? 🧐 Наша полное руководство! 🔑

Как добавить несколько значений в словарь Python по ключу? 📚🐍

🔧 Как управлять браузером через Python: полезные советы и техники