for (i=1; x >> i; i+=b) ;
for (i-=b-1; x >> i; i++) ;

空文の「;」を同じ行に書いちゃうやつは、ぜったい1回はハマる。
ちゃんと独立した行にインデントして書け。常識!