Задать вопрос
@harut997
начинающий веб-разработчик

Как определить, является ли число степенью двойки на javascript с помощью цикла while?

Как определить, является ли число степенью двойки на javascript с помощью цикла while?
задать число и что бы выводилось true или false если данное число 2 в степени или нет, заранее блогадарен
  • Вопрос задан
  • 2654 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Alexandroppolus
@Alexandroppolus
кодир
для чисел до 2^31 можно и без цикла

const isPower2 = n => (n & (n-1)) === 0

вариант для длинной арифметики
const isPower2b = n => (n & (n - 1n)) === 0n;

alert(isPower2b(147573952589676412928n));
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
(8).toString(2).replace(/0/g, '') == 1;  // true степень двойки
(17).toString(2).replace(/0/g, '') == 1; // false
(32).toString(2).replace(/0/g, '') == 1; // true степень двойки


Поясню, пожалуй. В двоичном представлении чисел, являющихся степенью двойки лишь одна единица. Это и проверяем.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы