#include<stdio.h>

void print(int num) {
int i = 0;
printf("奇数位\n");
for (i = 30; i >= 0; i -= 2) {//int型共有4个字节,每个字节占有8比特位,共32bit,也就是32个二进制数
printf("%d", ((num >> i) & 1) == 1);//右移后按位与上1,就是把除了该位置上的其余位置都变为0,再与1作比较,相等为1,不相等为0
}
printf("\n偶数位\n");
for (i = 31; i >= 1; i -= 2) {
printf("%d", ((num >> i) & 1) == 1);//因为从左往右开始变小,打印只能从高位开始打印,依次向右打印
}
}

int main() {
int a = 0;
scanf_s("%d", &a);//输入查询的数字
print(a);//调用print函数
return 0;
}

按位与以及移位操作符的使用

打印二进制的奇数位和偶数位_移位操作符