有8个1。
9999(十进制) = 10011100001111(二进制)
十进制整数转换为二进制整数:
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整傻数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
#include<stdio.h> int count1 = 0; int main() { void count_num(int num); count_num(9999); printf("共%d个1 ",count1); } void count_num(int num){ if(num/2 > 0){ count_num(num/2); } if(num%2==1) count1++; }