Skip to content

Instantly share code, notes, and snippets.

@marcoscastro
Created January 3, 2014 07:19
Show Gist options
  • Save marcoscastro/8234153 to your computer and use it in GitHub Desktop.
Save marcoscastro/8234153 to your computer and use it in GitHub Desktop.
Transforma um número decimal em binário.
#include <stdio.h>
#define MAX 100
// Programa que converte um número decimal para binário
void mostrar_binario(int n)
{
// casos base: n = 0 ou n = 1
if(n == 0 || n == 1)
{
if(n == 0)
printf("0\n");
else
printf("1\n");
return; // sai da função
}
int resto, quociente;
int vet[MAX], indice = 0;
// loop que realiza as operações para converter para binário
while(1)
{
resto = n % 2; // divisões sucessivas por 2
vet[indice] = resto; // guarda o resto no vetor
indice++; // incrementa o índice do vetor
quociente = n / 2; // divide por 2 (obtém o quociente da divisão)
// se o quociente for 1, guarda no vetor e sai do loop
if(quociente == 1)
{
vet[indice] = quociente;
indice++;
break;
}
// se chegou aqui é porque o quociente é maior do que 1
n = quociente; // novo valor para n
}
int i;
// mostra o vetor do último elemento para o primeiro
for(i = indice - 1; i >= 0; i--)
printf("%d", vet[i]);
printf("\n");
}
int main()
{
mostrar_binario(37);
mostrar_binario(49);
mostrar_binario(23);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment