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

Подсчет количества бит - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конец ввода http://www.cyberforum.ru/cpp-beginners/thread376463.html
Всем привет =) Делал очередное задание из учебника Страуструпа, но никак не могу заставить прогу работать) Прога-первое приближение калькулятора, т.е. делает операции последовательно, не учитывая приоритетов. Написано 1+2+3 - сложит 1 и 2, затем к результату прибавит 3. Написано 1+2*3 - сначала сложит 1 и 2, потом результат умножит на 3) // // This is example code from Chapter 6.3.1...
C++ передача потока в функцию #include <iostream> #include <fstream> void out(std::ofstream& streamOut) { streamOut << "Text"; } int main() { http://www.cyberforum.ru/cpp-beginners/thread376461.html
Создание объектов C++
Здравтсвуйте! Хочу спросить, почему лучше пользоваться указателем на объект (при ООП) Animals *cat = new Animals() и дальше обращаться к методам и св-вам класса через -> Почему хуже Animals cat и все! И обращение к методам и свойствами через точечную нотацию! По-моему, второй вариант намного проще и удобнее, но во всех книгах пишут, что лучше использовать именно первый! Что за бред???...
Заменить в последовательности каждую из групп стоящих рядом точек одной точкой C++
Дана последовательность S1, S2, ..., Sn, заменить в ней каждую из групп стоящих рядом точек одной точкой
C++ Посчитать сумму чисел стоящих после последнего числа 0 http://www.cyberforum.ru/cpp-beginners/thread376452.html
Подскажите как в одномерном массиве состоящем из n количества чисел посчитать сумму чисел стоящих после последнего числа 0 как найти вот этот последний ноль?
C++ Не работают методы в классе с контейнером map #include <map> #include <iostream> #include <string> class Superclass { map<long,long> a; map<long,long> b;//ñîçäàíèå îáúåêòà êîíòåéíåðà â ñîîòâåñòâèè ñ âàðèàíòîì map<long,long>::iterator it1; map<long,long>::iterator it2; подробнее

Показать сообщение отдельно
Kant
 Аватар для Kant
24 / 24 / 8
Регистрация: 15.05.2013
Сообщений: 213
24.05.2014, 14:46     Подсчет количества бит
Не правильно.
C++
1
2
3
4
5
6
7
8
int GetCountBitOfInteger(unsigned int value) {
    int count_bit = 0;
    for(count_bit=0; value!=0; value/=2)
        if (value%2 == 0)
            ++count_bit;
 
    return ++count_bit;
}
Нахождение номера старшего бита числа
Добавлено через 34 минуты
http://cppalgo.blogspot.com/2012/06/blog-post.html

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int GetCountBitOfInteger(int n) {
    if(n == 0) return 1;
 
    const int MASK_R[6] = {0x0000FFFF, 0x000000FF, 0x0000000F, 0x00000003, 0x00000001};
 
    int size = sizeof(n)*4;
    int res = 0, m = 0, l = 0;
 
    while (n != 1) {
         l = n >> size;
        if (l) {
            n = l;
            res += size;
        }
        else n &= MASK_R[m];
 
        size >>= 1;
        m++;
    }
 
    return ++res;
}
 
Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru