获取一个数二进制序列中所有的偶数位和奇数位

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/melody_1016/article/details/83271331

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


思路:利用“按位与”运算,将num32位中的的每一个二进制(由低位到高位)位取下来,存放到数组中(注意,这里依次取下每一位与数组下标正好是反着的,即a[0]存放的是第32位,a[31]存放的是第1位)

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void GetNum(unsigned int value)
{
	int arr[32];
	for (int i = 0; i < 32; i++)//由低位到高位不断取下每一个位的值,存入数组中
	{
		arr[i] = value & 1;
		value = value >> 1;
	}

	//输出偶数位
	printf("偶数位为:");
	for (int i = 31; i>0; i-=2)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	//输出奇数位
	printf("奇数位为:");
	for (int i = 30; i>=0; i -= 2)
	{
		printf("%d ", arr[i]);
	}
}

int main()
{
	int num = 0;
	printf("请输入数字:");
	scanf("%d", &num);
	GetNum(num);

	system("pause");
	return 0;
}

运行结果:

猜你喜欢

转载自blog.csdn.net/melody_1016/article/details/83271331
今日推荐