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

Наибольшая целая степень двойки, не превосходящая заданного числа n - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Переменные в c++ http://www.cyberforum.ru/cpp-beginners/thread778951.html
Помогите разобраться в теории. Так вот допустим мы создаем переменную в стеке int a; тогда в стеке где то по адресу скажем 004 выделяется 4 байта в которые записывается переменная в двоичном коде. Фррр а вот теперь вопрос а где храниться сам адрес 004 , откуда программа знает что переменная храниться в этом адресе? она что где то его сохраняет ?а если мы где то храним адрес то как мы узнаем...
C++ Написать рекурсивную процедуру перевода числа из десятичной системы в N –ю (2<= N <= 16) Написать рекурсивную процедуру перевода числа из десятичной системы в N –ю (2<= N <= 16) с циклами всё сделать гораздо проще, но вот задание такое, а рекурсию чёт я не особо втыкаю( http://www.cyberforum.ru/cpp-beginners/thread778948.html
C++ Дано предложение. Вывести все буквы м и н в нем
Дано предложение. Вывести все буквы м и н в нем. с помощью функций. С++
C++ Нахождение слова, по заданной букве
Дано предложение. Найти какое-нибудь слово, начинающееся на букву "к". С++
C++ Символы стоящие на чётных местах,заменить на букву Ы http://www.cyberforum.ru/cpp-beginners/thread778905.html
Дано предложение.Все его символы стоящие на чётных местах,заменить на букву Ы. Через С++
C++ Дайте, пожалуйста, контрпримеры Задача №93 в acmp задание в тему подробнее

Показать сообщение отдельно
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
04.02.2013, 23:01     Наибольшая целая степень двойки, не превосходящая заданного числа n
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
 
int main() {
   int power = 1;
   int n = 45;
   
   if ( n >= power << 16 )
      power <<= 16;
   
   if ( n >= power << 8 )
      power <<= 8;
   
   if ( n >= power << 4 )
      power <<= 4;
   
   if ( n >= power << 2 )
      power <<= 2;
   
   if ( n >= power << 1 )
      power <<= 1;
   
   std::cout << power << std::endl;
   
   return 0;
}
 
Текущее время: 17:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru