###### tags: `learning` `bitwise` # Round up to the next highest power of 2 ref = http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 ```cpp= unsigned int v; // compute the next highest power of 2 of 32-bit v v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; ``` in the edge case where v is 0, it returns 0, which isn't a power of 2; you might append the expression v += (v == 0) to remedy this if it matters.