fork(3) download
  1. //Conversor de IP en formato decimal punteado a IP en formato binario punteado
  2. //Israel Cáceres & Luis Heras
  3.  
  4.  
  5. #include <stdio.h>
  6.  
  7. int main() {
  8.  
  9. int numa;
  10. int numb;
  11. int numc;
  12. int numd;
  13.  
  14. int primerocteto[8];
  15. int segundoocteto[8];
  16. int tercerocteto[8];
  17. int cuartoocteto[8];
  18.  
  19. int n;
  20. int m;
  21.  
  22. char repetir;
  23.  
  24. printf("\n/////////////////////////////////////////\n");
  25. printf("// CONVERSOR IP DECIMAL A IP BINARIA //\n");
  26. printf("// por Israel Cáceres & Luis Heras //\n");
  27. printf("/////////////////////////////////////////\n\n");
  28.  
  29. //Cuerpo del programa dentro de un bucle, para dar la opcion
  30. //a realizar mas de una operacion
  31.  
  32. do {
  33. do {
  34. printf("\n- Introduce el PRIMER octeto: ");
  35. scanf("%i", &numa);
  36. if (numa < 0 || numa > 255) {
  37. printf("[ERROR] Debes introducir un número entre 0 y 255\n");
  38. }
  39. } while (numa < 0 || numa > 255);
  40.  
  41. do {
  42. printf("\n- Introduce el SEGUNDO octeto: ");
  43. scanf("%i", &numb);
  44. if (numb < 0 || numb > 255) {
  45. printf("[ERROR] Debes introducir un número entre 0 y 255\n");
  46. }
  47. } while (numb < 0 || numb > 255);
  48.  
  49. do {
  50. printf("\n- Introduce el TERCER octeto: ");
  51. scanf("%i", &numc);
  52. if (numc < 0 || numc > 255) {
  53. printf("[ERROR] Debes introducir un número entre 0 y 255\n");
  54. }
  55. } while (numc < 0 || numc > 255);
  56.  
  57. do {
  58. printf("\n- Introduce el CUARTO octeto: ");
  59. scanf("%i", &numd);
  60. if (numd < 0 || numd > 255) {
  61. printf("[ERROR] Debes introducir un número entre 0 y 255\n");
  62. }
  63. } while (numd < 0 || numd > 255);
  64.  
  65. printf("\n\n");
  66.  
  67. printf("[*] La IP en formato decimal punteado es ");
  68. printf("%i.%i.%i.%i\n\n", numa, numb, numc, numd);
  69. printf("[*] La IP en formato binario punteado es ");
  70.  
  71. //////////////////////////////////////////////////////////
  72. // INICIO DE LA CONVERSION DE DECIMAL A BINARIO //
  73. //////////////////////////////////////////////////////////
  74.  
  75.  
  76. //PRIMER OCTETO
  77. if (numa == 0) {
  78. printf("00000000");
  79. } else {
  80. for (n = 0; numa >= 1; numa = numa / 2, n++) {
  81. primerocteto[n] = numa % 2;
  82. }
  83. //Este condicional escribirá los ceros adicionales a la izquierda
  84. //para completar el octeto si fuese necesario
  85. if (n - 1 < 8) {
  86.  
  87. for (m = n; m < 8; m++) {
  88. printf("0");
  89. }
  90. }
  91.  
  92. for (n--; n >= 0; n--) {
  93.  
  94. printf("%i", primerocteto[n]);
  95. }
  96.  
  97. }
  98. /////////////
  99. printf(".");
  100. /////////////
  101.  
  102. //SEGUNDO OCTETO
  103. if (numb == 0) {
  104. printf("00000000");
  105. } else {
  106. for (n = 0; numb >= 1; numb = numb / 2, n++) {
  107. segundoocteto[n] = numb % 2;
  108. }
  109. //Este condicional escribirá los ceros adicionales a la izquierda
  110. //para completar el octeto si fuese necesario
  111. if (n - 1 < 8) {
  112.  
  113. for (m = n; m < 8; m++) {
  114. printf("0");
  115. }
  116. }
  117. for (n--; n >= 0; n--) {
  118. printf("%i", segundoocteto[n]);
  119. }
  120. }
  121. /////////////
  122. printf(".");
  123. /////////////
  124.  
  125. //TERCER OCTETO
  126. if (numc == 0) {
  127. printf("00000000");
  128. } else {
  129. for (n = 0; numc >= 1; numc = numc / 2, n++) {
  130. tercerocteto[n] = numc % 2;
  131. }
  132. //Este condicional escribirá los ceros adicionales a la izquierda
  133. //para completar el octeto si fuese necesario
  134. if (n - 1 < 8) {
  135.  
  136. for (m = n; m < 8; m++) {
  137. printf("0");
  138. }
  139. }
  140. for (n--; n >= 0; n--) {
  141. printf("%i", tercerocteto[n]);
  142. }
  143. }
  144. /////////////
  145. printf(".");
  146. /////////////
  147.  
  148. //CUARTO OCTETO
  149. if (numd == 0) {
  150. printf("00000000");
  151. } else {
  152. for (n = 0; numd >= 1; numd = numd / 2, n++) {
  153. cuartoocteto[n] = numd % 2;
  154. }
  155. //Este condicional escribirá los ceros adicionales a la izquierda
  156. //para completar el octeto si fuese necesario
  157. if (n - 1 < 8) {
  158.  
  159. for (m = n; m < 8; m++) {
  160. printf("0");
  161. }
  162. }
  163. for (n--; n >= 0; n--) {
  164. printf("%i", cuartoocteto[n]);
  165. }
  166. }
  167.  
  168.  
  169. //////////////////////////////////////////////////////////
  170. // FIN DE LA CONVERSION DE DECIMAL A BINARIO //
  171. //////////////////////////////////////////////////////////
  172.  
  173.  
  174.  
  175. printf("\n\n\n\n");
  176.  
  177. //REPETIR LA OPERACION, O SALIR DEL PROGRAMA
  178. do {
  179. printf("\nQuieres volver a empezar? (s/n): ");
  180. scanf(" %c", &repetir);
  181.  
  182. if (repetir != 's' && repetir != 'n') {
  183. printf("\nDebes introducir 's' o 'n' como parametro\n");
  184. }
  185.  
  186. } while (repetir != 's' && repetir != 'n');
  187.  
  188. } while (repetir == 's');
  189.  
  190. printf("\n\nGracias!!\n\n");
  191. return 0;
  192.  
  193. }
Success #stdin #stdout 0s 2252KB
stdin
192
168
10
5
n
stdout
/////////////////////////////////////////
// CONVERSOR IP DECIMAL A IP BINARIA //
// por Israel Cáceres & Luis Heras //
/////////////////////////////////////////


- Introduce el PRIMER octeto: 
- Introduce el SEGUNDO octeto: 
- Introduce el TERCER octeto: 
- Introduce el CUARTO octeto: 

[*] La IP en formato decimal punteado es 192.168.10.5

[*] La IP en formato binario punteado es 11000000.10101000.00001010.00000101




Quieres volver a empezar? (s/n): 

Gracias!!