Non. La boucle for sert un peu à ça
(et pourquoi tu n'écris pas >>= ?)
edit (cross) : oui effectivement il faut doubler les parenthèses (et heureusement qu'il y a ce warning d'ailleurs ^^')
mais euh for( ; i; i >>= 1) n'est pas vraiment sensiblement plus long (bon après c'est vrai que le terme de « propre » n'est pas le mieux choisi, disons qu'avec le for ça me semble bien plus lisible)