读入一个10进制正整数,将其二进制向右进行循环移位,并输出移位后的结果。用C语言写
时间: 2024-05-05 10:16:16 浏览: 124
实现此功能的代码如下:
```c
#include <stdio.h>
int main() {
int n, k;
printf("请输入一个10进制正整数:");
scanf("%d", &n);
printf("请输入移位的位数:");
scanf("%d", &k);
int m = n;
while (k--) {
int last_bit = m & 1; // 获取最后一位
m >>= 1; // 右移一位
m |= last_bit << (sizeof(int) * 8 - 1); // 最后一位移到最高位
}
printf("移位后的结果为:%d", m);
return 0;
}
```
运行程序后,输入一个正整数和移位的位数,即可得到移位后的结果。例如,当输入10进制正整数为10,移位的位数为2时,输出结果为5。
阅读全文