Programação Imperativa

100 Questões Fichas Testes/Exames

Questão 4: bitsUm

Voltar

Defina uma função int bitsUm (unsigned int n) que calcula o número de bits iguais a 1 usados na representação binária de um dado número n.

Exemplo

> bitsUm(6)
(int) 2

Resolução

int bitsUm (unsigned int n){
    int r = 0;
    while(n) {
        r += (n % 2);
        n >>= 1;
    }
    return r;
}

Explicação

A operação n >>= 1 é equivalente a n /= 2, basicamente desloca os bits de n uma unidade para a direita, o que produz o mesmo resultado do que dividir n por dois.