Mi duda sobre el código es que me imprime al momento de convertir en binario mas números de los que son, este es mi código:
La salida que me muestra al correrlo con este ejemplo 1.2.3.4 es:
1
1000101111111100001000
2
1000101111111100001010
3
1000101111111100001100
4
1000101111111100001110
La duda es el porque me saca tantos mas números de lo que debería de dar.
Espero puedan ayudarme, mucha gracias de ante mano
Código [Seleccionar]
#include <stdio.h>
#include <string.h>
void Binario(int numero);
int main()
{
char direccion[16];
char separador[2]=".";
char *ptr;
int cadNum;
printf("Ingrese la direccion IP\n");
scanf("%s",&direccion);
ptr=strtok(direccion,separador);
printf("%s\n",ptr);
cadNum = atoi(ptr);
Binario(ptr);
printf("\n");
while((ptr = strtok(NULL,separador))!= NULL)
{
printf("%s\n",ptr);
cadNum = atoi(ptr);
Binario(ptr);
printf("\n");
}
return 0;
}
void Binario(int numero)
{
if(numero < 2)
{
printf("%d",numero);
}
else
{
Binario(numero / 2);
printf("%d",numero%2);
}
}
La salida que me muestra al correrlo con este ejemplo 1.2.3.4 es:
1
1000101111111100001000
2
1000101111111100001010
3
1000101111111100001100
4
1000101111111100001110
La duda es el porque me saca tantos mas números de lo que debería de dar.
Espero puedan ayudarme, mucha gracias de ante mano