Возможный дубликат:
Как проверить, является ли число степенью двойки
Как я мог написать метод, который возвращал бы истину, если бы ему было передано значение 2, 4, 8, 32, 64 и так далее?
Возможный дубликат:
Как проверить, является ли число степенью двойки
Как я мог написать метод, который возвращал бы истину, если бы ему было передано значение 2, 4, 8, 32, 64 и так далее?
Это, наверное, лучший способ:
((value & -value) == value)
Возможно, вы захотите взглянуть на это, если вам нужен быстрый алгоритм: