方法一:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num, i;
printf("please enter a number:\n");
scanf("%d", &num);
printf("偶数序列为:\n");
for (i = 31; i >= 1; i -= 2)
{
if ((num >> i) & 0x1)
{
printf("1");
}
else
printf("0");
}
printf("\n");
printf("奇数序列为:\n");
for (i = 30; i >= 0; i -= 2)
{
if ((num >> i) & 0x1)
{
printf("1");
}
else
printf("0");
}
system("pause");
return 0;
}
方法二:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num, i,b[32];
printf("please enter a number:\n");
scanf("%d", &num);
for (i = 0; i <= 31; i++)
{
if ((num >> i) & 0x1)
b[i] = 1;
else
b[i] = 0;
}
printf("偶数序列为:\n");
for (i = 31; i >= 1; i -= 2)
{
printf("%d", b[i]);
}
printf("\n");
printf("奇数序列为:\n");
for (i = 30; i >= 0; i -= 2)
{
printf("%d", b[i]);
}
system("pause");
return 0;
}
小结:方法一和方法二的中心思想大致一致,不过方法一语法更简洁,它是直接从高位输出,而方法二是先将低位依次存入数组,然后将数组中的元素倒序输出。