Какой самый простой способ проверить, является ли число степенью двойки в С++?

В степени двойки будет установлен c++ только один бит (для чисел algorithm без знака). Что-то вроде

bool powerOfTwo = !(x == 0) && !(x & (x - 1));

Будет bit-manipulation работать нормально; на единицу bit-twiddling меньше, чем степень двойки, все cpp 1 в младших битах, поэтому c++ должно быть побитовое И на c++ 0.

Поскольку я предполагал bit-twiddling числа без знака, тест == 0 bit-fiddling (который я изначально забыл, извините) является c++ адекватным. Вам может понадобиться algorithm-design проверка > 0, если вы algorithm используете целые числа со c++ знаком.

c++

algorithm

bit-manipulation

2022-10-25T23:34:32+00:00
Вопросы с похожей тематикой, как у вопроса:

Какой самый простой способ проверить, является ли число степенью двойки в С++?