编写一个函数rightrot(x, n),该函数返回将x循环右移(即从最右端
移出的位将从最左端移入)n(二进制)位后所得到的值。
#include
int rightrot(int x, int n);
int rightrot(int x, int n)
{
int t;
t = ~(~0 << n);
return ((x & t) << (sizeof(x) * 8 - n % (sizeof(x)*8))) | (x >> n);
}
main()
{
printf("%d\n", rightrot(11, 29));
}