重点是不能改变num的值,使num可以一直循环使用
并且需要从向右移动31位,才开始循环,打印出来的数才不会是反着的。
向右移动31位,也就是到了最高位(符号位),此时是偶数位
所以向右移动30位,打印出来的就是奇数位
打印32位,所以是0到31
(求不同用 " ^ ")
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void Printbit(int num)
{
printf("偶数位");
for (int i = 31; i >= 1; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");
printf("奇数位");
printf(" ");
for (int i = 30; i >= 0; i -= 2)
{
printf("%d ", (num >> i) & 1);
}
printf("\n");
}
int main()
{
int num = 0;
scanf("%d", &num);
Printbit(num);
return 0;
}