On Thursday 29 August 2002 19:32, Ivo Bloechliger wrote:

> >for (i = 0; i < 16; ++i) {
> >    r += w % 2 ; // on accumule le reste de la division entiere par deux
> >     w = w / 2;   // division entiere */

Sauf erreur, le compilateur est capable de d�tecter une 
division/multiplication par une constante puissance de 2, et de transformer 
cette op�ration en bit-shift �quivalent. Ce qui fait que :

w = w / 2;

est en fait transformer en �quivalent :

w >>=1;

C'est donc particuli�rement rapide. Par contre je pense qu'�crire :

 r += w & 1;

devrait �tre plus rapide q'une op�ration de modulo :

r += w % 2 ;

Seul le r�sultat du bench nous dira si la t�orie se confirme :-)

Ce genre de code devrait �tre optimis� de mani�re impressionnante sur un 
processeur Itanium (sous Linux avec gcc ou HP-UX, pas W* !)

Daniel



--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à