//打印整数二进制的奇数位和偶数位
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 0;
//偶数位需移位的位数
//1 3 5 7...31
printf("偶数位:");
for (i = 31;i >= 1;i -= 2)
{//为了从左到右依次是高位到低位打印,这里从31开始向1走
printf("%d ", (n >> i) & 1);
}
printf("\n");
//奇数位需移位的位数
//0 2 4 6...30
printf("奇数位:");
for (i = 30;i >= 0;i -= 2)
{
printf("%d ", (n >> i) & 1);
}
return 0;
}
测试用例如下: