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

(1)
#include <stdio.h>
#include <windows.h>
#pragma warning(disable:4996)
int main()
{
	int num = 0;
	int i = 0;
	int j = 0;
	scanf("%d", &num);
	for (i = 31; i >= 0; i -= 2)//不用数组,从最高位开始
	{
		printf("%d",(num >> i) & 1); //偶位
	}
	printf("\n");
	for (i = 30; i >= 0; i -= 2)
	{
		printf("%d", (num >> i) & 1); //奇数位
	}
	system("pause");
	return 0;
}


(2)
#include <stdio.h>
#include <windows.h>
#pragma warning(disable:4996)
int main()
{
	int num = 0;
	int i = 0;
	int j = 0;
	char arr1[16];
	char arr2[16];
	scanf("%d", &num);
	for (i = 0; i < 32; i += 2)
	{
		arr1[j] = ((num >> i) & 1); //奇数位
		j++;
	}
	j = 0;//因为在上面的for循环中j已经成为最大16
	for (i = 1; i < 32; i += 2)
	{
		arr2[j] = ((num >> i) & 1);//偶数位
		j++;
	}

	for (j = 15; j >= 0; j--)
	{
		printf("%d", arr1[j]);
	}
	printf("\n");
	for (j = 15; j >= 0; j--)
	{
		printf("%d", arr2[i]);
	}
	system("pause");
	return 0;
}

你可能感兴趣的:(获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。)