Форум программистов, компьютерный форум CyberForum.ru

Определить, является ли данное число степенью двойки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Клетки http://www.cyberforum.ru/cpp-beginners/thread609558.html
Даны координаты двух полей шахматной доски (координаты клетки - это 2 числа от 1 до 8: номер столбца и номер строки). Одного ли цвета эти клетки на шахматной доске? Вывести в выходной файл сообщение YES, если они одного цвета, и NO иначе. Примеры input.txt output.txt 1 1 2 2 YES 1 1 1 4 NO
C++ Передать функции паметр-итератор есть функция void game::move(deque <Tunit>::iterator nunit) надо чтобы она получала указатель на один из элементов двойной очереди типа Tunit как правильно передавать параметр? вот так не подходит move(&(this->iUnit)) http://www.cyberforum.ru/cpp-beginners/thread609551.html
Подскажите знаковые целые заданной разрядности C++
Вот есть uint16_t. u означает unsigned? А как выглядит знаковый аналог? int16_t не помогло. А нет, он на signed в паре с int16_t ругался.
Вычислить уравнение на интервале C++
Помогите с задачей : Найти корень уравнения φ(х) = 0 на интервале (А, В) с точностью Е=10-4. Известно, что φ(х) на интервале (А, В) непрерывна и монотонна формула в картинке:
C++ Выравнивание структур http://www.cyberforum.ru/cpp-beginners/thread609473.html
typedef struct _WinBMPFileHeader { WORD FileType; DWORD FileSize; WORD Reserved1; WORD Reserved2; DWORD OffBits; } WINBITMAPFILEHEADER; sizeof =16, а на самом деле 14, лишние 2 байта воткнулись между FileType и FileSize из-за выравнивания на границу DWORD. Это файловый заголовок и...
C++ Матрица, найти и поменять местами минимальный и максимальный элемент Помогите с задачей: В квадратной матрице A найти среди элементов, расположенных ниже главной диагонали, минимальный элемент, а среди элементов выше побочной диагонали - максимальный. Поменять их местами. Вывести координаты этих элементов. подробнее

Показать сообщение отдельно
enk
 Аватар для enk
45 / 44 / 7
Регистрация: 16.06.2012
Сообщений: 177
20.06.2012, 05:17     Определить, является ли данное число степенью двойки
Цитата Сообщение от diagon Посмотреть сообщение
Где-то видел примерно такой код
C++
1
2
3
4
bool is_exp_of_2(int n)
{
    return ( n & (n - 1) ) == 0;
}
Работает, если степень <= 30.
C++
1
2
is_exp_of_2(pow(2, 31)); // 0
is_exp_of_2(8589934591); // 1
 
Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru