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

例如 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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43267837/article/details/88886485