`
songlj
  • 浏览: 15941 次
社区版块
存档分类
最新评论

Number of 1 Bits

 
阅读更多

解题思路:32位有符号整数的表示范围:-2147483648—214748364732位无符号整数的表示范围:0—2147483647+2147483648。如果输入的无符号数大于2147483647,则会显示成负数,所以当输入数字小于0时,只需加上2147483647+1,之后按照整数求1的个数,此时需要将1的个数加1.

Java代码实现:

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
        int count=0;
        if(n==0) return 0;
        if(n<0) {
            System.out.print(n);
            n+=2147483647+1;
            System.out.print(n);
            count++;
        }
        
        while(n!=0){
            int mod=n%2;
            if(mod==1) count++;
            n=n/2;
        }
        
        return count;
    }
}
原题题目:https://leetcode.com/problems/number-of-1-bits/




版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics