Inverte uma cadeia binaria.
Este programa utiliza propriedades de manipulação de bits para inverte os bits que compoem o valor de entrada no programa. Ele utiliza duas mascaras para fazer o processo de inversão. O unsigned é usado para "anular" o bit de sinal no programa.
Recomendado para estudantes de logica de computadores e iniciados em C. Aborda Funcões, Manipulacao de bits.
Recomendado para estudantes de logica de computadores e iniciados em C. Aborda Funcões, Manipulacao de bits.
Descrição
Este programa utiliza propriedades de manipulação de bits para inverte os bits que compoem o valor de entrada no programa. Ele utiliza duas mascaras para fazer o processo de inversão. O unsigned é usado para "anular" o bit de sinal no programa.
Recomendado para estudantes de logica de computadores e iniciados em C. Aborda Funcões, Manipulacao de bits.
Recomendado para estudantes de logica de computadores e iniciados em C. Aborda Funcões, Manipulacao de bits.
#include<stdio.h>
unsigned int inverte(unsigned int numero);
void main (void) {
unsigned int numero, retorno;
printf("Digite o numero que deseja inverter:");
scanf("%u", &numero);
retorno = inverte(numero);
printf("%u", retorno);
}
unsigned int inverte(unsigned int numero) {
unsigned int mask1 = 1, mask2 = 0x8000, aux = 0;
int i;
for(i=0; i<16; i++) {
if(numero & mask1) {
aux = aux | mask2;
}
mask1 = mask1 << 1;
mask2 = mask2 >> 1;
}
return aux;
}