Avatar ·

Что означает & в Python?

📁 множество, python, пример

Всем добрый вечер! Подскажите пожалуйста, что означает оператор & в Python? (это не связано с множеством).
Например есть код, который вычисляет, является ли вводимое пользователем число степенью двойки:

n = int(input())if n & (n - 1):    print('Это число - НЕ степерь двойки')else:    print('Это число - степень двойки')

Что во второй строчке означает n & (n-1)?

Avatar ·

Для чисел & обозначет побитовое ""И"" (). В двоичной системе счисления 2 ** n представляет собой 1, после которой идёт n нулей, а (2 ** n - 1) -- n единиц. Например, (dec) 32 = (bin) 100000, а (dec) 31 = (bin) 11111. Среди всех положительных чисел только степени двойки не имеют общих единиц с предыдущим числом. В коде содержится ошибка: 0 он считает степенью двойки.

Войдите чтобы оставить ответ

Блоги