#include<stdio.h>
void print(int num)
{
int i = 0;
printf("奇数位:");
for (i = 30; i>=0; i -= 2)
{
printf("%3d",(num>>i)&1);
}
printf("\n偶数位:");
for (i = 31; i >=1; i -= 2)
{
printf("%3d",(num>>i)&1);
}
}
void main()
{
int num;
printf("请输入一个整数:>");
scanf("%d",&num);
print(num);
}
我们知道,二进制是从0~31一共32位。而奇数位是从0~30位开始,偶数位是从1~31开始。
1100 从右往左看,第0位是0,第一位是0,第二位是1,第三位是1
再根据每一位之间间隔为2,这样我们就可以分离奇数位和偶数位。要打印每一位对应内容,我们可以通过&运算符,1&1==1;1&0==0;