C语言中的进制类型题目,获取一个数二进制序列中所有的奇数位和偶数位,分别输出二进制序列

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

  1. 思路:
    在32位操作系统中我们将奇数和偶数位分别右移动,向右移动以后&上一个1,这 样我们所输出的数字就都会是它本身。在32位操作系统中我们将奇数和偶数位分别右移动,向右移动以后&上一个1,这样我们所输出的数字就都会是它本身。
  2. 例如将第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

猜你喜欢

转载自blog.csdn.net/a_hang_szz/article/details/88021712