Philippe Strauss wrote:
[EMAIL PROTECTED]">Je pense que l'utilisation d'opérations sur bits devrait être plus rapide du style (pour l'intérieur de la boucle).On Thu, Aug 29, 2002 at 06:34:28PM +0200, Francois Ryser wrote:Bonjours,
Je recherche une methode en c++ de compter le nombre de bits a 1 dans des
mots de 16 bits, mais avec un imperatif de vitesse car nous devons faire sur
1 million de mots de 16 bits
r += w & 1; // bit-wise logical AND
w >>=1; // bit-shift
Sinon faire un tableau à 65536 (=2^16) entrées et stocker les résultat peut valoir la peine dans ton cas également.
Mais bon il y a encore mieux :-( http://www.devx.com/free/tips/tipview.asp?content_id=3839
[EMAIL PROTECTED]">
utilise la division modulo avec 2, qui donne le reste de la division :
r = 0;
w = .... ;
for (i = 0; i < 16; ++i) {
r += w % 2 ; // on accumule le reste de la division entiere par deux
w = w / 2; // division entiere */
-- Ivo Bloechliger Président GNU Generation EPFL-FSB-IMA-RO-SE Association d'étudiants pour 1015 Lausanne la promotion des logiciels libres http://rose.epfl.ch http://gnugeneration.epfl.ch