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

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

Восстановить пароль Регистрация
Другие темы раздела
Visual C++ Работа с реестром через Winreg.h http://www.cyberforum.ru/cpp-beginners/thread1020536.html
Создаю в реестре переменную через документ *.reg Далее в Студии пишу следующий код: #include <stdio.h> #include <iostream> #include <Windows.h> #include <WinUser.h> using namespace std;
Visual C++ ошибка при запуске после компиляции 'ZoneServerSD.exe': Loaded 'C:\Users\ENICH\Desktop\zone\rf_bin\ZoneServerSD.exe', Symbols loaded. 'ZoneServerSD.exe': Loaded 'C:\Windows\System32\ntdll.dll', No symbols loaded. 'ZoneServerSD.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', No symbols loaded. 'ZoneServerSD.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', No symbols loaded. 'ZoneServerSD.exe': Loaded... http://www.cyberforum.ru/cpp-beginners/thread1020084.html
Visual C++ unresolved external symbol
При компилировании выдает ошибку не могу найти в чем причина ZoneServer error LNK2019: unresolved external symbol "public: __thiscall TxtDialog::TxtDialog(class CWnd *)" (??0TxtDialog@@QAE@PAVCWnd@@@Z) referenced in function "protected: __thiscall CGameServerDoc::CGameServerDoc(void)" (??0CGameServerDoc@@IAE@XZ) ZoneServer error LNK2019: unresolved external symbol "public: virtual __thiscall...
Как найти слабые места в проекте? Visual C++
Имеется проект очень больших размеров, который был создан много лет назад и за это время постоянно дописывался и расширялся. Есть у проекта возможность пересчитать все показатели за последний год. Работает этот пересчет более суток, при этом используется больше половины кода проекта. 1) Мне требуется оптимизировать код, но хочется начать с самых проблемных мест, которые дадут самый ощутимый...
Visual C++ Перевод из int в string http://www.cyberforum.ru/cpp-beginners/thread1019418.html
Напишите пожалуйста как переменную int x = 1234 первести в String.
C++/CLI WinForms Работа с двумя формами С++ В меня есть Form1, по нажатию на кнопку открывается Form2. В Form1 находится datagridview1, в Form2 есть textbox1. В textbox1 находится какое-то число, например, 123. Это число нужно по нажатию кнопки в Form2 перенести в datagridview1. Как это сделать? Заранее спасибо подробнее

Показать сообщение отдельно
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
28.11.2013, 09:13     Быстрый подсчет количества бит
Цитата Сообщение от stlex Посмотреть сообщение
Вот окончательный вариант моего класса.
итак
все началось с подсчета, а закончилось целым классом

Цитата Сообщение от stlex Посмотреть сообщение
C++
1
2
3
4
5
6
7
inline bool GetBit( int n )
{
 if( ( 1 << ( n % BITS_COUNT_INT ) ) & myMap[ n / BITS_COUNT_INT ] )
   return true;
    else
  return false;
}
на хрена тебе здесь ветвление ???тормозить будет
тем более явная тавтология
если 1 << ( n % BITS_COUNT_INT ) ) & myMap[ n / BITS_COUNT_INT ] ИСТИНА, то вернуть ИСТИНА
C++
1
2
3
4
inline bool GetBit( int n )
{
  return ( 1 << ( n % BITS_COUNT_INT ) ) & myMap[ n / BITS_COUNT_INT ] )!=0;
}
Цитата Сообщение от stlex Посмотреть сообщение
вот что значит оптимизация компилятора! Думаю, тут только на asm можно что-то существенно оптимизировать.
Не факт
для этого надо очень хорошо знать современные процессоры
распараллеливание команд, организация кэша, выравнивание.....
если посмотришь на код оптимизированной программы то увидишь кучу бесполезных команд типа
mov edx,edx
или замена деления умножением
по коду больше а выполняется быстрее
 
Текущее время: 07:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru