Problema
Escriba una función que tome un entero sin signo y devuelva el número de bits ‘1’ que tiene (también conocido como peso de Hamming).
Por ejemplo, el entero de 32 bits ’11’ tiene representación binaria 00000000000000000000000000001011, por lo que la función debería devolver 3.
Solución Java
public int hammingWeight(int n) { int count = 0; for(int i=1; i<33; i++){ if(getBit(n, i) == true){ count++; } } return count; } public boolean getBit(int n, int i){ return (n & (1 << i)) != 0; } |