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

Показать сообщение отдельно
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
03.11.2011, 10:32     Подсчет количества бит
Не знаю будет быстрее или нет, можно попробовать такой способ

int count256[256];

// count256[i] = число битов в числе i

Тогда ответ будет очевиден

unsigned v;
int count= count256[ (v)&0x000000FF ]
+count256[ (v>>8)&0x000000FF ]+
+count256[ (v>>16)&0x000000FF ]+
+count256[ (v>>24)&0x000000FF ];

// count - число единичных бит

Добавлено через 39 секунд
Как бы очевидно как посчитать для
uint64_t v2;
 
Текущее время: 13:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru