Zephyr (./278) :
Ça ne fait pas la même chose, il veut effectuer le décalage et tester la condition de boucle sur le résultat, alors que ton for commence par tester la valeur actuelle avant de la décaler.
Zephyr (./278) :
c'est à dire while ((i >>= 1))