Hola soy nuevo por aqui pero espero que me podreis resolver este problema
Me estoy iniciando en C y he intentado hacer un programa que transforme la IP a un numero en base 256 y no me funciona
El código es el siguiente:
Código:
#include <stdio.h>
/* Declaración de las variables correspondientes a la IP
como enteros y de la IP en base 256 com largo sin signo */
int prim, sec, terc, cuar;
int base256;
int main()
{
printf("\n Transformacion de IP\n");
printf("Dirección IP: ");
scanf("%d.%d.%d.%d",&prim,&sec,&terc,&cuar); // Lee la IP en formato xxx.xxx.xxx.xxx y la transforma en 4 variables
base256=prim*(256*256*256)+sec*(256*256)+terc*256+cuar;
printf("\nIP en base 256: %d\n",base256);
return(0);
}
y la salida en consola es esta:
Código:
$ gcc transformip.c -o transformip
$ ./transformip
Transformacion de IP
Dirección IP: 192.168.1.39
IP en base 256: -1062731481
cuando la salida tendria que ser 'IP en base 256: 3232235815'
Que hago mal??
Gracias y salu2
EDITADO: tambien he probado declarando base256 como entero largo, pero se desborda igualmente
Marcadores