void ultoa(unsigned long l, char* pStr, int base) { //not taking hex (0-F) into consideration //given specified range was 0<=base<=16 if(l < base) { *pStr + l; } else { *pStr = ultoa(l/base, *pStr, base) + (l%base); } }