Sword to Offer-15 二进制中1的个数 ❀
in Algorithm
- 题目描述:
输入一个整数,输出该数32
位二进制表示中1
的个数。其中负数用补码表示。
解题思路:
数学知识:运算n = n & (n-1)
相当于将n
的二进制表示最右边一个1
变为0
。
AC代码:
// One in Binary Number N
public class Solution {
public int NumberOf1(int n) {
int count = 0;
while (n!=0) {
count++;
n = n&(n-1);
}
return count;
}
}
补充说明:
- 这里是牛客编码链接