java笔试题--二进制中1的个数

package com.zjp.offer.study;

/**
 * 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
 */
public class Find1 {
    public static void main(String[] args) {
        int num = 4;
        int count = 0;
        while (num != 0) {
            //num&(num-1)相当于把n的二进制表示中最右边的2变为0
            //所以只需看执行了几次num&(num-1)就行了
            num = num & (num - 1);
            count++;
        }
        System.out.println(count);
    }
}

你可能感兴趣的:(java常见笔试题)