Public feed
#722220
unsigned short getNumDigits(unsigned long l, unsigned char base)
{
return (1 + floor(log10(l) / log10(base)));
}
char* longToCharBased(unsigned long l, unsigned char base)
{
unsigned short dig_num = getNumDigits(l, base);
unsigned long res = l, mod = 0;
char buf[dig_num+1];
buf[dig_num] = 0;
while( res != mod )
{
--dig_num;
buf[dig_num] = res % base;
res = res / base;
if(buf[dig_num] < 10)
buf[dig_num] += DIGIT_SHIFT;
else
buf[dig_num] += UPPER_SHIFT;
}
printf("Converting: (%ld)base10 to (%s)base%u \n", l, (char*)buf, base);
char* o = (char*) buf;
return o;
}
-----
usage: longToCharBased(151515,16)