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.