fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main() {
  6. int decimal;
  7. printf("Digite um número em base decimal: ");
  8. scanf("%d", &decimal);
  9. int counter = 1;
  10. char *binary = NULL;
  11. while (decimal >= 1) {
  12. int q = decimal / 2;
  13. int r = decimal - (q * 2);
  14. char *aux = malloc(counter);
  15. if (binary != NULL) {
  16. memcpy(aux, binary, counter - 1);
  17. free(binary);
  18. }
  19. binary = aux;
  20. if (r == 0) binary[counter-1] = '0';
  21. else binary[counter-1] = '1';
  22. counter++;
  23. decimal = q;
  24. }
  25. printf("Resultado em binário = ");
  26. for (int i = counter - 1; i >= 0; i--) printf("%c", binary[i]);
  27. printf("\n");
  28. free(binary);
  29. }
  30.  
  31. //https://pt.stackoverflow.com/q/58696/101
Success #stdin #stdout 0s 4560KB
stdin
14
stdout
Digite um número em base decimal: Resultado em binário = 1110