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

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

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

Показать сообщение отдельно
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
21.03.2012, 00:13     Подсчёт битов в числе равных 1.
как-то так?
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
unsigned bit_count (unsigned input, std::string &out) {
 
    unsigned res = 0;
 
    std::string text_bits(35, ' ');
 
    for(int i=0; i<=31; i++) {
        bool is_bit_set = ((input & (1 << i)) != 0);
        unsigned shift = i / 8;
        res += is_bit_set;
        text_bits[35 - i - shift] = '0' + is_bit_set;
    }
    out.swap(text_bits);
    return res;
}
 
int main()
{
    unsigned input;
    std::string bit_text;
    std::cin >> input;
    std::cout << "Count: " << bit_count(input, bit_text) << "\n";
    std::cout << "Bits: " << bit_text << "\n";
    return 0;
}
Код
34563567
Count: 16
Bits:  00000010 00001111 01100101 1110111
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru