#include <stdio.h>
char* Lx_itoaEx(long value, char* str, long radix) {
    static char dig[] =
        "0123456789"
        "abcdefghijklmnopqrstuvwxyz";
    long n = 0, neg = 0;
    unsigned int v;
    char* p, *q;
    char c;
    if (radix == 10 && value < 0) {
        value = -value;
        neg = 1;
    }
    v = value;
    do {
        str[n++] = dig[v%radix];
        v /= radix;
    } while (v);
    if (neg)
        str[n++] = '-';
    str[n] = '\0';
    for (p = str, q = p + (n-1); p < q; ++p, --q)
        c = *p, *p = *q, *q = c;
    return str;
}

int main()
{
   long p = 10;
   char str[32];
   Lx_itoaEx(p,str,2);
   char str2[33];
   sprintf(str2,"%0*d%s",32-strlen(str),0,str);
   printf("%s",str2);
  
   return 0;
}