您的位置:首页 > 其它

获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列

2017-11-21 21:16 471 查看
解法一:

步骤:

1.将一个数转为二进制数

2.按照偶数位和奇数位输出

#include <stdio.h>
int main()
{
int num = 0;
printf("请输入数字:");
scanf("%d", &num);
int a[32];
int i = 0;
for (i = 31; i >= 0; i--)//由于转换后二进制是反的,所以将转换的数反存进数组中,下面同理
{
a[i] = num % 2;//十进制数转二进制数(除2取余法)
num /= 2;
}
printf("二进制为:");
for (i = 0; i <=31; i++)
{
printf("%d", a[i]);
}
printf("\n");
printf("偶数位:");
for (i = 1; i<= 31; i += 2)
{
printf("%d", a[i]);
}
printf("\n");
printf("奇数位:");
for (i = 0; i <= 30; i += 2)
{
printf("%d", a[i]);
}
printf("\n");
return 0;
}




解法二:

不用转化为二进制,直接移位输出。

#include <stdio.h>
int mai
4000
n()
{
int num = 0;
scanf("%d", &num);
printf("偶数:");
for (int i = 31; i >= 1; i-=2)
{
printf("%d", (num >> i) & 1);
}
printf("\n");
printf("奇数:");
for (int j = 30; j >= 0; j-=2)
{
printf("%d", (num >> j) & 1);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐