Inversão da ordem dos bits de um inteiro. Escreva um programa que inverta a ordem dos bits em um valor inteiro unsigned. O programa deverá pedir o valor do usuário e chamar a função reverseBits para imprimir os bits em ordem inversa. Imprima o valor em bits antes e depois que os bits forem invertidos, para confirmar que eles foram invertidos corretamente.

Passo 1

E aí meus queridos!! Tudo bem com vocês??

Hoje vamos fazer um programa que vai receber um número, transformá-lo em binário e em seguida invertê-lo.

Para isso precisamos criar duas funções. Uma para transformar o número em binário e outra função para invertê-lo. Veja como:

Passo 2

Bom já que declaramos as nossas funções vamos entender como é o corpo delas.

Na função displayBits criamos um variável (contador) e declaramos um displayMask e deslocamos 31 bits à esquerda.

Em seguida utilizamos o loop for para percorrer os bits e imprimi-los em binário como 1 ou 0. Após isso podemos utilizar a condição if para sempre que imprimir 8 bits soltar um espaço! Legal para a estética do nosso programa!!

E em seguida criamos uma newline.

Passo 3

Entendemos um pouco sobre a função displayBits, vamos entender um pouco sobre a função reverseBits.

Trabalhamos da mesma maneira que a função anterior, porém invertemos a impressão declarando o displayMask igual a 1 e deslocamos o valor dos bits a direita.

Passo 4

Agora precisamos receber o número do usuário e imprimir o número em bits e o mesmo invertido no main. Dessa forma é só chamarmos as funções dentro do main.

Ufa... Acabamos por aqui!! Dê Ctrl+n no seu compilador e bora para o próximo exercício!!

Resposta

E assim ficará nosso código: