java里的Integer.bitCount
Updated:
			Contents
		
		
		
		* 如何判断一个数里面有几个1?
Java里有个方法“Integer.bitCount(int x)”可以计算出一个数二进制里1的个数
1  | public static int bitCount(int i) {  | 
感觉很神奇的样子。。。为啥是这样的呢?
先自己实现一个计算1的方法1
2
3
4
5
6
7
8int bitCount(int n) {
    int count = 0;
    for (int i = 0; i < 32; i++) {
        count += n & 1;
        n >>= 1;
    }
    return count;
}
可以看出,当n较小的时候,n>>1过几次后就变成0了。
因此可以改为:(但是速度不会变快哦)1
2
3
4
5
6
7
8int bitCount(int n) {
    int count = 0;
    while(n != 0){
        count += n & 1;
        n >>= 1;
    }
    return count;
}
