アイデア:
- すべての奇数ビットを抽出します。ビットが1の場合は1を出力し、0の場合は0を出力します
- 同じ方法で偶数位置を抽出します
numのビットが0か1かを検出する方法:
- numをiビット右に移動します
- シフトが1で行われた後の結果のビットごとのAND:
結果が0の場合、i番目のビットは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;
}