#include /* * Returns the value of the integer x rotated to the right by n bit positions. */ unsigned rightrot(unsigned x, int n) { unsigned mask = ~(~0 >> 1); while (n-- > 0) if (x & 1) x = (x >> 1) | mask; else x >>= 1; return x; } int main() { printf("%x\n", rightrot(0xaa, 3)); }