#include <stdio.h>
#include <windows.h>
#include <math.h>
unsigned long converter(int typeOfConvertion, unsigned long numberToConvert);

int main(int argc, char argv[])
{
    printf("enter a number ");
    unsigned long nombre;
    scanf("%lu", &nombre);
    printf("Nombre converti: %lu\n\n", converter(1, nombre));
    return 0;
}
unsigned long converter(int typeOfConvertion, unsigned long numberToConvert)
{
    if(typeOfConvertion == 1)
    {
        unsigned long numberConverted = 0;

        while(numberToConvert > 0)
        {
            double puissances;
            double base = 2;
            double converterTable;

            converterTable = pow(base, puissances);

            if(converterTable == numberToConvert)
            {
                numberToConvert = numberToConvert - converterTable;

                if(puissances == 0)
                {
                    numberConverted = numberConverted + 1;
                }else
                {
                    numberConverted = numberConverted + pow(10, puissances);
                }
                puissances = 0;
            }else if(converterTable < numberToConvert)
            {
                puissances += 1;
            }else if(converterTable > numberToConvert)
            {
                puissances -= 1;
                converterTable = pow(base, puissances);
                numberToConvert = numberToConvert - converterTable;
                numberConverted = numberConverted + pow(10, puissances);
                puissances = 0;
            }
        }
        return numberConverted;
    }
    return 0;
}