1、获取一个数二进制序列中所有的奇数位和偶数位,分别输出二进制序列。
- 思路:
在32位操作系统中我们将奇数和偶数位分别右移动,向右移动以后&上一个1,这 样我们所输出的数字就都会是它本身。在32位操作系统中我们将奇数和偶数位分别右移动,向右移动以后&上一个1,这样我们所输出的数字就都会是它本身。 - 例如将第32位向右移动31位,这样我们再给数字&1,就会得到第三十二位的数字,以此类推,我们把奇数、偶数分别向右移动,得到我们想要的结果。
#include <stdio.h>
int main()
{
int num=0;
int i=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);
}
return 0;
}
结果:
输入:
15
输出:
0000000000000011
0000000000000011