/**
* 求整数的二进制中,1的个数 (负数也可以) 负数计算方式 正数原码取反码再取补码 就是反码加一叫补码
* -2 :
* 原码 0000 0000 0000 0000 0000 0000 0000 0010
* 反码 1111 1111 1111 1111 1111 1111 1111 1101
* 补码 1111 1111 1111 1111 1111 1111 1111 1110
*
* @param n
*/
public static void getBitOne(int n) {
int count = 0;
while (n != 0) {
count++;
n = n & (n - 1);
}
System.out.println(count);
}
网友评论