
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;
}
História
da Computação | Listas de
Exercícios | Problemas Resolvidos | macmulti@ime.usp.br