剑指offer11二进制中1的个数

转载 2018年04月16日 11:31:02

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

  //思想:用1(1自身左移运算,其实后来就不是1了)和n的每位进行位与,来判断1的个数

class Solution {

public:
     int  NumberOf1(int n) {
         int count=0;
         int flag=1;
         while(flag!=0)
         {
             if((n&flag)!=0){
                 count++;
             }
             flag=flag<<1;
         }
         return count;
     }

};


方法2:(n - 1) & n把最右边的1变为0

class Solution {
public:
     int  NumberOf1(int n) {
        int count = 0;
        while (n != 0) {
            ++count;
            n = (n - 1) & n;
        }
        return count; 
     }
};

关于java 的 Classpath全解

www.dukejava.com 中最有人气的java文章java 的新入门者对classpath往往比较困惑,为何在开发环境中能运行的东东出去就不好,或在外面运行的东东挺溜的进了开发环境就死菜,烦死...
  • javaduke
  • javaduke
  • 2001-01-18 21:42:00
  • 520

【剑指offer】二进制中1的个数

剑指offer上的第10题,在九度OJ上测试通过。 时间限制:1 秒内存限制:128 兆 题目描述: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 输入: 输入可能包含...
  • mmc_maodun
  • mmc_maodun
  • 2014-05-10 08:32:34
  • 3185

剑指Offer面试题10(Java版):二进制中的1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1,因此如果输入9,该函数输出2. 1、可能引起死循环的解法 这是一道很基本的考察二进制和...
  • jsqfengbao
  • jsqfengbao
  • 2015-07-30 08:17:39
  • 2132

剑指Offer面试题10二进制中1的个数(位运算)附带一个进制转换题

面试题10:二进制中1的个数 实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如9的二进制是1001,则输出2。 位运算相关知识:位运算共5种,与(&)是同时为1才为1,或(|)是有一...
  • login_sonata
  • login_sonata
  • 2017-03-04 20:42:15
  • 554

剑指offer--二进制中的1的个数--补码

题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 首先复习一下补码。。这道题考的位运算 --> 位运算 计算机中的符号数有三种表示方法,即原码、反码和补...
  • obession
  • obession
  • 2017-06-21 20:01:50
  • 176

[牛客网,剑指offer,python] 二进制中1的个数

二进制中1的个数题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路将该二进制数的每一位与1做与运算,统计结果为1的个数。 具体做法是:对二进制数进行右移操作,每次右移一...
  • ysk0825
  • ysk0825
  • 2017-07-03 15:42:37
  • 131

剑指offer:二进制中1的个数(java)

题目描述: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。比如输入9,9的二进制表示是1001,1的个数是2,所以输出2。 这有一个重要结论:一个数与该数减一的结果进行与运算,会...
  • abc7845129630
  • abc7845129630
  • 2016-09-29 12:45:49
  • 256

【剑指Offer面试题】 九度OJ1513:二进制中1的个数

题目链接地址: http://ac.jobdu.com/problem.php?pid=1513题目1513:二进制中1的个数时间限制:1 秒内存限制:128 兆特殊判题:否提交:4217解决:1...
  • zhoubin1992
  • zhoubin1992
  • 2015-07-28 16:20:30
  • 863

剑指offer----二进制中1的个数----java实现

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路一:移位运算  右移:右移n位,最右边的n位会被舍弃,如果是无符号的话,用0填补最左边的n位,如果是有符号的,用1填补坐左边的...
  • snow_7
  • snow_7
  • 2016-07-06 10:22:04
  • 230

剑指offer-10-Python实现(二进制中1的个数)

题目内容:解答思路: 把一个整数减去1,再和原来的整数做位与运算,会把该整数最右边一个1变成0.也就是说,一个整数的二进制有多少个1,就可以完成多少次这样的操作。可以写出代码:def func(n)...
  • jackmcgradylee
  • jackmcgradylee
  • 2017-09-06 21:46:01
  • 106
收藏助手
不良信息举报
您举报文章:剑指offer11二进制中1的个数
举报原因:
原因补充:

(最多只允许输入30个字)