first result uses if (((x-1)&(x|0x80000000))==0)
second result uses if ((x & (x - 1) | !x) == 0) D:\pow2\pow2\pow2\Release>pow2 duration(msec)=10259 duration(msec)=10689 D:\pow2\pow2\pow2\Release>pow2 duration(msec)=10256 duration(msec)=10695 D:\pow2\pow2\pow2\Release>pow2 duration(msec)=10264 duration(msec)=10726