例如 10 二进制序列为0000 0000 0000 0000 0000 0000 0000 1010
它的偶数位二进制序列为0000 0000 0000 0011
它的奇数位二进制序列为0000 0000 0000 0000
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void odd_even(int a[],unsigned int value,int size)
{
//将value32位中的每一个二进制位取下来(由低到高)依次存放入数组中
//注意,取下来的二进制位与数组下标正好相反,即a[0]存放的是第32位,a[31]存放的是第一位
for (int i = 0; i < 32; i++) {
a[i] = ((value >> i) & 1);
}
printf("偶数位为:");
for (int j = size - 1; j >= 1; j -= 2) {
printf("%d", a[j]);
}
printf("\n");
printf("奇数位为:");
for (int i = size - 2; i >= 0; i -= 2) {
printf("%d", a[i]);
}
printf("\n");
}
int main() {
unsigned int num = 0;
int arr[32] = { 0 };
printf("获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列:");
scanf("%d", &num);
odd_even(arr,num,32);
system("pause");
return 0;
}