Проверьте, является ли число n чётным, используя только побитовые операции. def is_even(n):
return (n & 1) == 0 # Если последний бит 0 — число чётное
print(is_even(4)) # True
print(is_even(7)) # False 💡 Почему так: последний бит любого числа отвечает за чётность. 0 — чётное, 1 — нечётное. Дано число n. Обнулите самый младший установленный бит (самую правую 1). n = 10 → 1010 → после операции → 1000 → 8 def clear_lowest_bit(n):
return n & (n - 1)
print(clear_lowest_bit(10)) # 8 ⚙️ Часто встречается как подзадача в оптимизированных циклах. Продолжение классики "проверка степени двойки", но теперь усложним! Проверьте, что n = 4^k, где k >= 0. def is_power_of_four(n):
return n > 0 and (n & (n - 1)) == 0 and (n & 0xAAAAAAAA) == 0
print(is_power_of_four(16)) # True
print(is_power_of_four(8)) # False 📌 Уровень — middle или выше. Хороший способ проверить не просто знание &, но и масок. Выведите число, в котором только один установленный бит — самый младший из n. n = 12