Richard_

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

思路:将原数字与1按位进行与操作。

 1 public class Solution {
 2     public int NumberOf1(int n) {
 3         int count = 0;
 4         int flag = 1;
 5         while(flag != 0){
 6             if((n & flag) != 0){
 7                 count++;
 8             }
 9 
10    //将flag左移一位,下次与n的更高位与操作
11             flag = flag << 1;
12         }
13         return count;
14     }
15 }

 

posted on 2018-11-27 10:48  Richard_  阅读(113)  评论(0)    收藏  举报