二进制中1的个数

题目描述

  输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
  思路:n&(n-1)可将n的二进制中最后一个1变为0
class Solution {
public:
     int  NumberOf1(int n) {
         int count=0;
         while(n)
         {
             n=n&(n-1);
             ++count;
         }
         return count;
     }
};

 

posted @ 2017-12-21 16:56  jeysin  阅读(93)  评论(0)    收藏  举报