/*
打印整数二进制的奇数位和偶数位
题目内容:
获取一个整数二进制序列中所有的奇数位和偶数位,分别打印出二进制序列
*/
#include <stdio.h>
void print_odd_even(int num) {
int i = 0;
int res = 0;
//第一种方式
//for (i = 31; i >= 0;) { //打印奇数位
// res = num & (1 << i) ? 1 : 0; //判断&的结果是非0的话,就为1。
// printf("%d ",res);
// i -= 2;
//}
//printf("\n");
//for (i = 30; i >= 0;) { //打印偶数位
// res = num & (1 << i) ? 1 : 0;
// printf("%d ", res);
// i -= 2;
//}
//第二种方式
for (i = 31; i >= 0;i -= 2){ //打印奇数位
res = (num >> i) & 1;//将num移位,保证&的结果唯一,要么为0,要么为1。
printf("%d ",res);
}
printf("\n");
for (i = 30; i >= 0; i -= 2) {//打印偶数位
res = (num >> i) & 1;
printf("%d ", res);
}
}
int main() {
int num = 0;
scanf_s("%d",&num);
print_odd_even(num);
return 0;
}

打印整数二进制的奇数位与偶数位
该代码实现了一个函数print_odd_even,它接受一个整数作为输入,然后分别打印出这个整数二进制表示中的奇数位和偶数位。程序使用了两种方式来实现这一功能,通过位操作(位与和右移)来判断和提取二进制位。在主函数main中,用户输入一个整数,然后调用print_odd_even函数进行打印。
347

被折叠的 条评论
为什么被折叠?



