int main() {
int a;
scanf("%d", &a);//获取a
printf("奇数位:");
for (int i = 31; i >= 1; i -= 2) {//大部分编译器实现的都是算数右移,所谓算数右移,也就是右边丢弃,左边好用原该值的符号位填充
//而又因为求的是奇数位,所以从右移31位开始,每次i-2,这样的话,每次右移的数都是奇数,然后用
//那一位去和1做与判断
printf("%d", (a >> i) & 1);
}
printf("\n");
printf("偶数位:");
for (int i = 30; i >= 0; i -= 2) {
printf("%d", (a >> i) & 1);
}
return 0;
}