//获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
首先需要了解一个知识点:获取二进制数n中的对应i位置的二进制位,只需(n >> i)& 1
解题思路:
1> 先判断偶数位最高位依次向右移动两位,根据上述公式获取该位置的值;
2> 再判断奇数位,方法同上,只是循环位从偶数位的下一位开始 ;
3> 分别打印偶数位和奇数位的值。
源代码:
#include<stdio.h>
#include<stdlib.h>
//获取一个数二进制序列中所有的偶数位和奇数位,
//分别输出二进制序列。
void XuLie(int n)
{
int i = 0;
for (i = 31; i > 0; i -= 2)
{
printf("%d ", (n >> i) & 1);
}
printf("\n");
for (i = 30; i >= 0;i -= 2)
{
printf("%d ", (n >> i) & 1);
}
}
int main()
{
XuLie(20);
system("pause");
return 0;
}
运行结果:
学无止境!