fundo
O peso de Hamming de um número inteiro é o número de unidades em sua representação binária. Para esse desafio, os números inteiros são representados com 32 bits e não são assinados.
Desafio
Dado um número inteiro entre 0 e 2 ^ 32-1 (não inclusivo), produza um número inteiro diferente dentro do mesmo intervalo e também com o mesmo peso de Hamming.
Exemplos
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)
Pontuação
Isso é código-golfe , então a solução com o menor número de bytes em cada idioma vence.
2^31+2
, repetirei que disse um número ímpar . As respostas em questão só falhou quando tanto o maior e o menor bit são 1
.