题解分析:首先一个整数是具有32个字节,也就是0-31这个范围内,要想获取一个整数的奇偶位,不妨逐一获取,奇数位最大下标为31,使用<<符号向左移动31个单位,最后再&1,获取对应的二进制位,然后再循环向左移动(31-2x)个单位,直到(31-2x)<1时停止获取,偶数位同理可的,从下标30开始,话不多说直接看代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
int main()
{
int input = 0;
printf("请输入一个数:");
scanf("%d", &input);
printf("奇数位:");
int tmp = 0;
for (int i = 31; i >= 1; i -= 2)
{
tmp = (input >> i) & 1;
printf("%d ", tmp);
}
printf("\n");
printf("偶数位:");
for (int i = 30; i >= 0; i -= 2)
{
tmp = (input >> i) & 1;
printf("%d ", tmp);
}
return 0;
}
运行结果:
(今日分享就到这,铁汁们要是有啥不理解的地方,欢迎留言,咱们一起探讨(*^▽^*)!!)