一开始我想的方法不对,在看了别的方法后还是有些不理解
经过思考 看图得到了解答
开始我想的是从第一位开始遍历去打印,但是这样打印是与正确答案相反的,不是题目要求打印的顺序,所以要倒序遍历
#include<stdio.h>
int main() {
int n = 0;
printf("输入一个整数:");
scanf("%d", &n);
int temp = 0;
printf("奇数位:");
for ( int i = 31; i >=1; i = i-2)
{
temp = (n >> i) &1;
printf("%d ", temp);
}
printf("\n");
printf("偶数位:");
int tep = 0;
for (int i = 32; i > 1; i = i - 2)
{
tep = (n >> i) & 1;
printf("%d ", tep);
}
return 0;
}