代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//1.将数字转化为二进制
//2.由于二进制数是由数字对2反向取模,
//即取模后得到的第奇数个数字为偶数位(偶数同理)
void Sequence(int num){
int num1 = num;
int arr[16] = { 0 };
int i = 0;
//将反向的二进制存放在arr[ ]中
while (i<16){
arr[i]= num % 2;
i++;
num /= 2;
}
//将二进制正向存放
int len = sizeof(arr) / sizeof(arr[0]);
int j;
int k = 1;
int temp;
for (j=0; j <8; j++){
temp = arr[j];
arr[j] = arr[len - k];
arr[len - k] = temp;
k++;
}
printf("%d的二进制为:\n",num1);
for (j = 0; j < 16; j ++){
printf("%d", arr[j]);
}
printf("\n");
//取奇数部分并打印
printf("二进制奇数位序列为:\n");
for (j=0; j < 16; j+=2){
printf("%d", arr[j]);
}
//取偶数部分并打印
printf("\n二进制偶数位序列为:\n");
for (j=1; j <16; j+=2){
printf("%d", arr[j]);
}
printf("\n");
}
int main(){
int num;
printf("请输入一个数字:\n");
scanf("%d", &num);
Sequence(num);
system("pause");
return 0;
}
运行结果: