fork download
  1. //Conversor decimal->hexadecimal, octal y binario
  2. //Israel Cáceres
  3. //2014.02.16
  4.  
  5. #include <stdio.h>
  6.  
  7. int main() {
  8.  
  9. int num; //almacenará el numero introducido por el usuario
  10. int bin[32]; //almacenará los restos de la division del numero introducido entre 2 (para la conversión del número a binario)
  11. int n; //modificador del elemento del array
  12.  
  13. //interacción con el usuario
  14. printf("Introduce un numero entero positivo: ");
  15. scanf("%i", &num);
  16.  
  17. if (num<0) { //control de error para impedir la introducción de números negativos, o si se introduce el "0" como número
  18.  
  19. printf("Error, introduce un numero positivo\n");
  20.  
  21. }
  22.  
  23. if (num==0){
  24.  
  25. //impresión del número en hexadecimal,octal y binario (0)
  26. printf("\nEl numero introducido es %i, en hexadecimal es %x,\nen octal es %o, en binario es 0.\n\n\n~Israel\n\n\n", num, num, num);
  27. }
  28.  
  29. else if(num>0){
  30.  
  31. //impresión del número en hexadecimal y octal, y preparación para la impresión en binario
  32. printf("\nEl numero introducido es %i, en hexadecimal es %x,\nen octal es %o, en binario es ", num, num, num);
  33.  
  34. //bucles para la impresión del número en binario
  35. //el primer bucle almacenará los datos en el array "bin", el segundo los imprimirá
  36. for (n=0; num>=1 ; num=num/2 , n++) {
  37.  
  38. bin[n]=num%2;
  39.  
  40. }
  41.  
  42. for(n-- ; n>=0 ; n--){
  43.  
  44. printf("%i",bin[n]);
  45.  
  46. }
  47.  
  48. //formato
  49. printf(".\n\n\n~Israel\n\n\n");
  50.  
  51. }
  52.  
  53. //si todo se ejecutó correctamente, la función main devolverá "0"
  54. return 0;
  55.  
  56. }
Success #stdin #stdout 0s 2296KB
stdin
192
stdout
Introduce un numero entero positivo: 
El numero introducido es 192, en hexadecimal es c0,
en octal es 300, en binario es 11000000.


~Israel