함수를 구현하고 정수 (이진 문자열 형식)를 입력하고 숫자의 이진 표현으로 1의 수를 출력하십시오. 예를 들어 9를 이진수로 표현하면 1001이고 2 비트는 1입니다. 따라서 9를 입력하면 함수가 2를 출력합니다.
예 1 :
입력 : 00000000000000000000000000001011
출력 : 3
설명 : 입력 이진 문자열 00000000000000000000000000001011에서 총 3 비트는 '1'입니다.
예 2 :
입력 : 00000000000000000000000010000000
출력 : 1
설명 : 입력 이진 문자열 00000000000000000000000010000000에서 총 1 비트는 '1'입니다.
예 3 :
입력 : 11111111111111111111111111111101
출력 : 31
설명 : 입력 바이너리 문자열 11111111111111111111111111111101에서 총 31 비트는 '1'입니다.
문제 해결:
public class Solution {
// you need to treat n as an unsigned value
public int hammingWeight(int n) {
int res=0;
while(n!=0){
res+=1&n;
n= n>>>1;
}
return res;
}
}