#include<stdio.h>
#define N 64
int move(int a,int n){
int b[N];
int i;
if(n<0) n+=32;
for(i=0;a!=0 && i<N;i++){
b[i]=a%2;
a/=2;
}
int len=32;
for(;i<32;i++){
b[i]=0;
}
for(i=0;i<n;i++){
b[len+i]=b[i];
}
for(i=n;i<len;i++){
b[i-n]=b[i];
}
for(i=len;i<len+n;i++){
b[i-n]=b[i];
}
int result=0,c;
int j;
for(i=0;i<len;i++){
for(j=0;j<i;j++){
b[i]*=2;
}
result+=b[i];
}
return result;
}
int main()
{
int a=128,n=-3;
scanf("%d %d",&a,&n);
printf("%u\n",move(a,n));
return 0;
}
此题跟http://www.dotcpp.com/oj/problem1773.html,问题 1773: C语言程序设计教程(第三版)课后习题12.2相似,只需引入当n<0时,领n=n+32即可(向左n即为向右32-n位)
0.0分
0 人评分
【偶数求和】 (C语言代码)记得sum的归零时机浏览:928 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:813 |
C语言训练-排序问题<1> (C语言代码)浏览:1351 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1534 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:904 |
WU-输出九九乘法表 (C++代码)浏览:1671 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:550 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:591 |
班级人数 (C语言代码)浏览:927 |