要求:
获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
思路:
通过移位和与操作符来实现。
要打印的位和1相与的结果是它本身,所以移位再和1相与可得结果。
实现:
#include <stdio.h>
#include<windows.h>
void PrintBit(int m){
int i = 31;
printf("二进制:");
while (i >= 0)
{
printf("%d ", (m >> i) & 1);
i--;
}
//打印偶数位
printf("\n偶数位为:");
for (i = 31; i >= 1; i-=2){
printf("%d", (m >> i) & 1);
}
printf("\n");
//打印奇数位
printf("奇数位为:");
for (i = 30; i >= 0; i -= 2){
printf("%d", (m >> i) & 1);
}
printf("\n");
}
int main(){
int a = 0;
printf("请输入操作数:");
scanf_s("%d", &a);
PrintBit(a);
system("pause");
return 0;
}
结果: