Какой самый простой способ проверить, является ли число степенью двойки в С++?
В степени двойки будет установлен 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
Какой самый простой способ проверить, является ли число степенью двойки в С++?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.