191-number of 1 bits-字符串相关

来源:互联网 发布:人工智能权威杂志 编辑:程序博客网 时间:2024/05/01 16:45
【题目】

Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).

For example, the 32-bit integer ’11' has binary representation 00000000000000000000000000001011, so the function should return 3.

【解析】

参考文章:
http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html
http://jinguo.iteye.com/blog/540150
简单题,考查int类型数转换成二进制后含有几个1,用到经典的位移运算。

【代码】

public class Solution {
    // you need to treat n as an unsigned value
    public int hammingWeight(int n) {
             if(n==0) return 0;     
             int i=0;     
             while(n!=0){         
                 n=n & (n-1);         
                 i++;     
             }     
             return i; 
    }    
}

0 0