思路:
- 提取所有的奇数位,如果该位是1,输出1,是0则输出0
- 以同样的方式提取偶数位置
检测num中某一位是0还是1的方式:
- 将num向右移动i位
- 将移完位之后的结果与1按位与,如果:
结果是0,则第i个比特位是0
结果是非0,则第i个比特位是1
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void Printbit(int num)
{
for (int i = 31; i >= 1; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");
for (int i = 30; i >= 0; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");
}
int main()
{
int num = 0;
printf("请输入一个数: ");
scanf("%d", &num);
Printbit(num);
return 0;
}