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

Подсчёт битов в числе равных 1. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ стек аргументов функции http://www.cyberforum.ru/cpp-beginners/thread521741.html
Ребят, такой вопрос: можно ли как то показать как в функции заполняется стек аргументов. банальное печатанье аргументов по адресу по моему не совсем так работает, как надо... а должно? суть в том...
C++ Среднее арифметическое трех чисел Нужно создать программу в которой вводятся 3 числа и находится среднее арифметическое. Результат вывести на экран. Программу для решения среднего арифметического записать как подпрограмму. ... http://www.cyberforum.ru/cpp-beginners/thread521726.html
C++ Ввод чисел с клавиатуры и вывод на экран в шестнадцатеричном и десятичном виде
Напечатать в шестнадцатеричном и десятичном виде a, b, a<<5, b>>6, результат побитового умножения a и b<<4, результат побитового сложения a и b. Помогите с решением пожалуйста. Добавлено через 2...
Передача массива в функцию. C++
Здравствуйте. Очень нужна помощь, мне необходимо передать массив в функцию (func). #include <iostream> using namespace std; const unsigned int n=10; int func(int *a,int *b, const unsigned...
C++ Работа с динамической памятью через указатели. Загадочная ошибка. http://www.cyberforum.ru/cpp-beginners/thread521710.html
Программа запускается и нормально исполняется, но в конце появляется ошибка. Мог бы кто подсказать в чем проблема? Пишу в Microsoft Visual Studio ->Win32 Console application ->C++. Условие:...
C++ PlaySound mp3 Можно ли с помощью функции PlaySound воспроизвести mp3 файл? Напишите пример воспроизведения файла 1.mp3 или 1.wav. подробнее

Показать сообщение отдельно
villu
203 / 204 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
20.03.2012, 23:00
можно и через for
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned bit_count (unsigned input) {
    unsigned res = 0;
    for(int i=0; i<=31; i++) {
        res += ((input & (1 << i)) != 0);
    }
    return res;
}
 
int main()
{
    unsigned input;
    std::cin >> input;
    std::cout << bit_count(input);
    return 0;
}
Если коротко, то
сдвигаем единицу,
накладываем двоичным И,
если остается не ноль, то прибавляем единицу.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru