源自《The C Programming Language》P40 pr2-8: 编写一个函数rightrot(x, n),该函数返回将x循环右移(即从最右端移出的位从最左端移入)n(二进制)位后所得的值。 代码: #include <stdio.h> unsigned rightrot(unsigned x, int n); int main() { unsigned num = 8; int cnt = 3; printf("%u/n", rightrot(num, cnt)); return 0; } /******************************************************* **函数名称:rightrot ** 功能:将x循环右移n位 ** 参数:x:待处理的无符号型整数(不考虑有符号型整数) ** n:循环右移的位数 ** 返回值:将x循环右移n位后得到的数值 **/ unsigned rightrot(unsigned x, int n) { unsigned rbit; //待处理数据x的最右比特位 unsigned pattern = ~(~0 << 1); //冗余的数据 while(n > 0) { rbit = x & pattern; //冗余的代码 x = x >> 1; if(rbit == 1) x |= (1 << 31); --n; } return x; } /*******