char *itoa(int value, char *str, int radix)
{
unsigned int index;
unsigned char ch;
unsigned char buffer[32]; /* space for NUMBER_OF_DIGITS + '\0' */
if (value < 0 && radix == 10)
{
*str++ = '-';
value = -value;
}
index = 32;
do
{
ch = (unsigned char)('0' + (value % radix));
if ( ch > '9') ch += 'a' - '9' - 1;
buffer[ --index ] = ch;
value /= radix;
} while (value != 0);
do
{
*str++ = buffer[index++];
} while ( index < 32 );
*str = 0;
return str;
}
{
unsigned int index;
unsigned char ch;
unsigned char buffer[32]; /* space for NUMBER_OF_DIGITS + '\0' */
if (value < 0 && radix == 10)
{
*str++ = '-';
value = -value;
}
index = 32;
do
{
ch = (unsigned char)('0' + (value % radix));
if ( ch > '9') ch += 'a' - '9' - 1;
buffer[ --index ] = ch;
value /= radix;
} while (value != 0);
do
{
*str++ = buffer[index++];
} while ( index < 32 );
*str = 0;
return str;
}