//Conversor de IP en formato decimal punteado a IP en formato binario punteado
//Israel Cáceres & Luis Heras
#include <stdio.h>
int main() {
int numa;
int numb;
int numc;
int numd;
int primerocteto[8];
int segundoocteto[8];
int tercerocteto[8];
int cuartoocteto[8];
int n;
int m;
char repetir;
printf("\n/////////////////////////////////////////\n"); printf("// CONVERSOR IP DECIMAL A IP BINARIA //\n"); printf("// por Israel Cáceres & Luis Heras //\n"); printf("/////////////////////////////////////////\n\n");
//Cuerpo del programa dentro de un bucle, para dar la opcion
//a realizar mas de una operacion
do {
do {
printf("\n- Introduce el PRIMER octeto: "); if (numa < 0 || numa > 255) {
printf("[ERROR] Debes introducir un número entre 0 y 255\n"); }
} while (numa < 0 || numa > 255);
do {
printf("\n- Introduce el SEGUNDO octeto: "); if (numb < 0 || numb > 255) {
printf("[ERROR] Debes introducir un número entre 0 y 255\n"); }
} while (numb < 0 || numb > 255);
do {
printf("\n- Introduce el TERCER octeto: "); if (numc < 0 || numc > 255) {
printf("[ERROR] Debes introducir un número entre 0 y 255\n"); }
} while (numc < 0 || numc > 255);
do {
printf("\n- Introduce el CUARTO octeto: "); if (numd < 0 || numd > 255) {
printf("[ERROR] Debes introducir un número entre 0 y 255\n"); }
} while (numd < 0 || numd > 255);
printf("[*] La IP en formato decimal punteado es "); printf("%i.%i.%i.%i\n\n", numa
, numb
, numc
, numd
); printf("[*] La IP en formato binario punteado es ");
//////////////////////////////////////////////////////////
// INICIO DE LA CONVERSION DE DECIMAL A BINARIO //
//////////////////////////////////////////////////////////
//PRIMER OCTETO
if (numa == 0) {
} else {
for (n = 0; numa >= 1; numa = numa / 2, n++) {
primerocteto[n] = numa % 2;
}
//Este condicional escribirá los ceros adicionales a la izquierda
//para completar el octeto si fuese necesario
if (n - 1 < 8) {
for (m = n; m < 8; m++) {
}
}
for (n--; n >= 0; n--) {
printf("%i", primerocteto
[n
]); }
}
/////////////
/////////////
//SEGUNDO OCTETO
if (numb == 0) {
} else {
for (n = 0; numb >= 1; numb = numb / 2, n++) {
segundoocteto[n] = numb % 2;
}
//Este condicional escribirá los ceros adicionales a la izquierda
//para completar el octeto si fuese necesario
if (n - 1 < 8) {
for (m = n; m < 8; m++) {
}
}
for (n--; n >= 0; n--) {
printf("%i", segundoocteto
[n
]); }
}
/////////////
/////////////
//TERCER OCTETO
if (numc == 0) {
} else {
for (n = 0; numc >= 1; numc = numc / 2, n++) {
tercerocteto[n] = numc % 2;
}
//Este condicional escribirá los ceros adicionales a la izquierda
//para completar el octeto si fuese necesario
if (n - 1 < 8) {
for (m = n; m < 8; m++) {
}
}
for (n--; n >= 0; n--) {
printf("%i", tercerocteto
[n
]); }
}
/////////////
/////////////
//CUARTO OCTETO
if (numd == 0) {
} else {
for (n = 0; numd >= 1; numd = numd / 2, n++) {
cuartoocteto[n] = numd % 2;
}
//Este condicional escribirá los ceros adicionales a la izquierda
//para completar el octeto si fuese necesario
if (n - 1 < 8) {
for (m = n; m < 8; m++) {
}
}
for (n--; n >= 0; n--) {
printf("%i", cuartoocteto
[n
]); }
}
//////////////////////////////////////////////////////////
// FIN DE LA CONVERSION DE DECIMAL A BINARIO //
//////////////////////////////////////////////////////////
//REPETIR LA OPERACION, O SALIR DEL PROGRAMA
do {
printf("\nQuieres volver a empezar? (s/n): ");
if (repetir != 's' && repetir != 'n') {
printf("\nDebes introducir 's' o 'n' como parametro\n"); }
} while (repetir != 's' && repetir != 'n');
} while (repetir == 's');
return 0;
}