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

Найти степень двойки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить функцию для разделения текста в С http://www.cyberforum.ru/cpp-beginners/thread184997.html
Составить функцию для разделения текста, заданного строкой литер, на отдельные слова и подсчета числа слов. Под словом понимается последовательность литер, отличных от пробела, ограниченная слева началом строки или пробелом и справа - пробелом, знаком препинания или концом строки. int kwords(char* ss, char * sm, int kmax); ss - исходная строка, sm - массив строк длиной до 30 литер каждая...
C++ Счетный цикл Здраствуйте! У меня вопрос по задаче "Написать программу, которая находит сумму косинусов всех чисел от 1 до введенного n." с использованием счетного цикла. Проблема в том, что ответ мне выводится совсем не тот, что нужен. Я думаю, что ошибка состоит в том, что я неправильно задаю косинус. Вот код: #include <iostream> #include <math.h> using namespace std; int main () { double i, n, p,... http://www.cyberforum.ru/cpp-beginners/thread184986.html
Циклический алгоритм (цикл с предусловием - while) C++
Здравствуйте!!! Помогите пожалуйста с задачей. TC++ Найти первый отрицательный член последовательности cos(ctg(n)) для n изменяющегося на следующим образом: n=1,2,3... . Заранее большое спасибо!
На С. Найти количество четных и большее из нечетных. C++
Даны целое число n, целые числа a1, a2, ..., an. Найти наибольшее из нечетных и количество четных чисел, входящих в последовательность a1, a2, ..., an+1. Программа должна содержать функцию, в main только вызов этой функции и ввод-вывод.
C++ Удалить из массива отрицательные элементы http://www.cyberforum.ru/cpp-beginners/thread184966.html
Подскажите пожалуйста!!! Задание: удалить из массива отрицательные элементы. Почему-то работает прога не полностью правильно . #include "stdio.h" void main ( )
C++ Каждую цифру целого числа х, поместить в отдельный элемент массива m Доброго вечера. Ув. форумчане помогите пожалуйста развязать маленькие задачки по программированию на С++, необходимо написать следующие программы: 1) каждую цифру целого числа х, поместить в отдельный элемент массива m. 2) четные переменные элементы m поместить в начало, а не четные в конец массива. 3) отсортировать одномерный массив m четырьмя способами.(какие вообще способы... подробнее

Показать сообщение отдельно
КОП
348 / 280 / 86
Регистрация: 15.08.2010
Сообщений: 755
16.03.2016, 16:25     Найти степень двойки
Цитата Сообщение от SemenovSA Посмотреть сообщение
0х3f&0x55...= 0x0055
0х3f&0x55...= 0x0015
математики, они такие можно же cout в код понапихать и списать результат

Добавлено через 9 минут

Не по теме:

и да, чего мы в теме 2010 года забыли?



Добавлено через 46 минут
GbaLog-, хотя поясню на всякий логику на том же примере 128 в бинарном виде
сначала х=
10000000

x -= 1; //изменяем нули на единицы
01111111

Далее _ разделяет то, что мы рассматриваем как отдельное число.

x = x - ((x >> 1) & 0x55555555); //разбиваем биты на пары и в каждую пару записываем кол-во единиц исходного Х
0_1__1_1__1_1__1_1
01___10___10___10
(1_1 - две единички; 1+1 = 2 -> 10 в бинарной.)

x = (x & 0x33333333) + ((x >> 2) & 0x33333333); // повторяем фокус, на этот раз разбивая число на группы из 4х битов
01_10___10_10
0011____0100
(теперь мы складываем значения пар битов, т.е. 01_10 -> 1 + 2 = 3 -> 0110)

Повторяем, пока все биты не будут просуммированы в последний байт.
x = (x + (x >> 4)) & 0x0F0F0F0F;
0011____0100
00000111
(3+4 = 7)
в этом примере дальше остались только нули
x = x + (x >> 8);
x = x + (x >> 16);

И отбрасываем все, кроме него, т.к результат < 32
x &= 0x0000003F;
 
Текущее время: 19:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru