码迷,mamicode.com
首页 > 编程语言 > 详细

c语言中求解1的个数

时间:2016-04-09 17:08:12      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:c语言

在c语言中有三种求解一个数1的个数的方法

  1. 将整数每次右移一位的方式

    int Numble(int n)

    {

    int count = 0;

    while (n)

    {

    if (n & 1 == 1)

    count++;

    n = n >> 1;

    }

    return count;

    }

    但这种方法存在的不足是,当这个整数是负数的时候,将无限循环

  2. 使整数与1进行与运算,1每次左移一位


    int Numble(int n)

    {

    int count = 0;

    int flag = 1;

    while (flag&n)

    {

    count++;

    flag = flag << 1;

    }

    return count;

    }

  3. 整数减1在与这个整数相与


  4. int Numble(int n)

  5. {

  6. int count = 0;

  7. while (n)

  8. {

  9. count++;

  10. n = n&(n - 1);

  11. }

  12. return count;

  13. }

c语言中求解1的个数

标签:c语言

原文地址:http://10810512.blog.51cto.com/10800512/1762057

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!