获取一个数二进制序列中所有的偶数位和奇数位,并输出。
二进制序列求法
for (i = 31; num != 0; i--)
{
a[i] = num % 2;
num /= 2;
}
/*
比如num = 10
10 % 2 = 0
5 % 2 = 1
2 % 2 = 0
1 % 2 = 1
得二进制序列为1010
*/
完整代码
#include<stdio.h>
int main()
{
int a[32] = { 0 };
int i = 0;
int num = 0;
printf("请输入一个数\n");
scanf("%d", &num);
//换算及输出二进制
for (i = 31; num != 0; i--)
{
a[i] = num % 2;
num /= 2;
}
printf("二进制为:");
for (i = 0; i < 32; 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;
}