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

Быстрый подсчет количества бит - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задача сорт и поиск бульбашка http://www.cyberforum.ru/cpp-beginners/thread1020528.html
надо по сортировать числа 12 22 15 55 11 21 12 31 13 51 55 15 с помощью буль башки в отсортированном массиве после этова найти максимальное число и минимальное в массиве! также найти определенный...
C++ Написать программу с функцией, вычисляющей расстояние между двумя точками на плоскости Пожалуйста Помогите сделать лабу, нужно что-бы я сам задавал координаты точек на плоскости. http://www.cyberforum.ru/cpp-beginners/thread1020526.html
C++ Отправка письма на email
Здорова господа!!! Пишу щас программку которая должна отсылать письма на email, но ничего не получается. От что набрасал:#include <winsock.h> int main() { cout <<"Rabota c SOCETAMI"<<endl;...
в последней строке файла записаны два слова, переписать в выходной файл лишь те строки в которых есть хотя бы одно из этих слов C++
помогите пожалуйста с задачей: в последней строке файла записаны два слова, переписать в выходной файл лишь те строки в которых есть хотя бы одно из этих слов :help:
C++ приведение NULL к char http://www.cyberforum.ru/cpp-beginners/thread1020499.html
можно ли так писать, если getpwd(login) возвращает NULL? pwds = (char*) getpwd(login);
C++ Запись в массив объекты класса (vector) // oop_laba2_2cpp: определяет точку входа для консольного приложения. //Вариант 6 //Объект – директория. // //Включает в себя //массив //файлов (имя, расширение, размер). // //Методы –... подробнее

Показать сообщение отдельно
stlex
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 8

Быстрый подсчет количества бит - C++

27.11.2013, 10:08. Просмотров 1467. Ответов 22
Метки (Все метки)

Нужно подсчитать количество бит, равных единице в int32, использую статический массив, в котором заранее подсчитаны значения для 0x0000 - 0xFFFF

C++
1
2
3
4
5
6
7
8
9
10
11
12
inline unsigned __int8 BitCount16( unsigned __int16 k )
{
   static unsigned __int8 mas[0x10000];
   static bool init = InitMas( mas );
   return mas[ k ];
}
 
template<>
inline unsigned __int8 BitCountImpl<__int32>( int *k )
{
   return BitCount16( *k >> 16 ) + BitCount16( *k & 0xFFFF );
}
Все работает, но очень уж меделено для моей задачи . Может, кто-то сталкивался с подобным, и есть идеи по увеличению скорости, или тут предел?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.