C语言问题——循环移位

循环移位。要求将a进行右循环移位。即a右循环移n位,将a中原来左面(32-n)位右移n位,a中原来右边的n位补到了左边。
现假设四个字节存放一个整数。

请不要太复杂~~

第1个回答  2018-09-28
#include "stdio.h"
int main(int argc,char *argv[]){
unsigned int a,n,t;
printf("Input a & n(int a,n>=0)...\n");
if(scanf("%d%d",&a,&n)!=2 || a<0 || n<0 || n>32){
printf("Input error, exit...\n");
return 0;
}
t=a>>n;
printf("The result is %u\n",(a<<=(32-n))|=t);
return 0;
}

运行样例:

相似回答