Форум программистов, компьютерный форум 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. подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.03.2012, 00:00     Подсчёт битов в числе равных 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
26
27
28
29
30
#include <stdio.h>
#include <limits.h>
 
#ifndef LONG_BIT
#define LONG_BIT ( sizeof(long) * CHAR_BIT )
#endif
 
char * binstr(const unsigned long x){
    static char buf[LONG_BIT + 1] = { 0 };
    size_t i = LONG_BIT;
    char * p = buf;
    
    while ( i-- )
        *p++ = '0' + ( ( x >> i ) & 1 );
    
    return buf;
}
 
size_t on_bits(const unsigned long x){
    return ( x ) ? ( x & 1 ) + on_bits(x >> 1) : 0;
}
 
int main(void){
    unsigned long x;
    
    while ( printf("Number: ") && scanf("%lu", &x) == 1 )
        printf("%#08x\t%s\t%u bits is on\n", x, binstr(x), on_bits(x));
    
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru