获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void print_num(unsigned value)
{
int count = 0;//二进制数字的位数
int a[32] = { 0 };
int i_bit = 0;
while (value) {
a[i_bit] = value % 2;
value /= 2;
i_bit++;
count++;
}
if (count % 2 == 0)
{
printf("奇数序列\n");
for (int i = count-2; i >= 0; i -= 2)
{
printf("%d ", a[i]);
}
printf("\n");
printf("偶数序列\n");
for (int i = count-1 ; i >= 0; i -= 2)
{
printf("%d ", a[i]);
}
printf("\n");
}
else
{
printf("奇数序列\n");
for (int i = count-1; i >= 0; i -= 2)
{
printf("%d ", a[i]);
}
printf("\n");
printf("偶数序列\n");
for (int i = count - 2; i >= 0; i -= 2)
{
printf("%d ", a[i]);
}
printf("\n");
}
}
int main()
{
unsigned int a;
printf("请输入一个非负整数:\n");
scanf("%d", &a);
print_num(a);
system("pause");
return 0;
}