Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sheva777 en 18 Octubre 2013, 17:00 pm



Título: Duda con un programa
Publicado por: sheva777 en 18 Octubre 2013, 17:00 pm
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:
Código:

#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


Título: Re: Duda con un programa
Publicado por: ivancea96 en 18 Octubre 2013, 17:31 pm
La función Binario() funciona perfectamente.