prefer (uint)-1>>1 to ~((uint)1<<n), remove some unnecessary ()