Fondo
El peso de Hamming de un entero es el número de unos en su representación binaria. Para este desafío, los enteros se representan con 32 bits y no están firmados.
Reto
Dado un número entero entre 0 y 2 ^ 32-1 (no incluido), genera un número entero diferente dentro del mismo rango y también con el mismo peso de Hamming.
Ejemplos
Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal)
46 | 0b0010 1110 | 4 | 15
12 | 0b0000 1100 | 2 | 3
1 | 0b0000 0001 | 1 | 2
3 | 0b0000 0011 | 2 | 6
2^31 | 0b1000....0 | 1 | 1
2^31+2 | 0b1000...10 | 2 | 3
2^32-5 | 0b1111..011 | 31 | 2^31-1
2^32-2 | 0b1111....0 | 31 | 2^31-1
0 | 0b0000 0000 | 0 | None (This case need not be handled)
2^32-1 | 0b1111....1 | 32 | None (This case need not be handled)
Tanteo
Este es el código de golf , por lo que gana la solución en la menor cantidad de bytes en cada idioma.
2^31+2
, repetiré que dije un número impar . Las respuestas en cuestión solo fallaron cuando tanto el bit más alto como el más bajo son 1
.