将函数返回参数转化为二进制并统计1的个数

C语言代码如下:

# include <stdio.h>

int main()
{
    int a=5, c; 
    c = count_one_bits(a);     /*函数调用,返回count的值*/
        
    printf("该十进制数转化为二进制数后1的个数为:%d\n", c);
    
    return 0;
}
/*统计二进制数中1的个数*/
int count_one_bits(int x)
{
    int i=0, arry[5]={0};
    int n, count=0;
    n = x;
    while(n>0)              /*此循环用来将二进制数存入数组*/
    {
       arry[i] = n % 2;
       i++;
       n = n / 2;  
     }
     printf("该十进制转换为二进制为:");
     for( i=4; i>=0; i--)    /*顺序输出二进制数并用count计算1的个数*/
     {
        printf("%d", arry[i]);
        if(arry[i]==1)
          {
             count++;
          }
   
      }
     return count;
}

 

干货小知识:标准C指定了char至少必须达到8位、short至少为16位、long至少32位、long long至少64位,int是16位还是32位以及前几个的具体精度与机器位数和实现有关。

你可能感兴趣的:(C语言,十进制转换为二进制)