Код
#define NUMBER_OF_DIGITS 32
void _ultoa(unsigned long value, char* string, unsigned char radix)
{
unsigned char index;
char buffer[NUMBER_OF_DIGITS]; /* space for NUMBER_OF_DIGITS + '\0' */
index = NUMBER_OF_DIGITS;
do {
buffer[--index] = '0' + (value % radix);
if ( buffer[index] > '9') buffer[index] += 'A' - '9' - 1;
value /= radix;
} while (value != 0);
do {
*string++ = buffer[index++];
} while ( index < NUMBER_OF_DIGITS );
*string = 0; /* string terminator */
}
void _ltoa(long value, char* string, unsigned char radix)
{
if (value < 0 && radix == 10) {
*string++ = '-';
_ultoa(-value, string, radix);
}
else {
_ultoa(value, string, radix);
}
}