Solução em C do Problema 17


/* Programa para converter da base 10 para a base 2 */

#include <stdio.h>

int main() {
  int num,        /* numero dado (na base decimal)         */
      bin,	  /* numero dado convertido para base 2    */
      aux,	  /* auxiliar                              */
      dig,	  /* guardara cada um dos digitos binarios */
      pot;        /* potencia de 10                        */

  printf("Digite um numero natural: ");
  scanf("%d", &num);

  /* inicializacoes */
  aux = num;
  bin = 0;
  pot = 1;

  while (aux > 0) {
    dig = aux % 2;          /* proximo digito binario menos significativo  */
    aux = aux / 2;          /* remove esse digito do que resta             */
    bin = bin + dig * pot;  /* adiciona o digito como o mais significativo */
    pot = pot * 10;
  }
  printf("O numero %d escrito na base binaria: %d\n", num, bin);

  return 0;
}


Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br