/* For 16 bit unsigned integers. */ unsigned int round_up(unsigned int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v++; return v; } int main() { unsigned int f; f = round_up(125); if(f == 128) return 5; else return 7; }