**1.写一个函数返回参数二进制中 1 的个数 **
二进制的运算方式正巧满足了递归的结果,利用除二计算余数,同时在将最后得到的余数按照相反的方向输出,利用全局变量在整个过程中记录所需值,有需要时还可以用全局数组储存二进制数;
//写一个函数返回参数二进制中 1 的个数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int count = 0;//全局变量查看1的值
int count_one_bits(unsigned int value) {
//1.利用取余转换为二进制
int temp = 0;
if (value != 0){
temp = value % 2;
count_one_bits(value / 2);
}
printf(" %d ", temp);
if (temp == 1){
count++;
}
return count;
}
int main(){
//给出想要查找的数
unsigned int num;
scanf("%d", &num);
int nums = count_one_bits(num);
printf("\n%d的二进制中一的个数为:%d\n", num, nums);
system("pause");
return 0;
}
**2.获取一个数二进制序列中所有的偶数位和奇数位,
分别输出二进制序列。 **
利用相同的套路分别得到二进制的每一位,同时增添一个参数用于判断当前需要输出的是奇数位还是偶数位;
//获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int