#include <stdint.h>
void i64toa(int64_t value, char *string, uint8_t radix)
{
char *i, *s, t, d;
i = string;
if(value < 0)
{
*i++ = '-';
value = -value;
}
s = i;
do
{
d = value % radix;
value /= radix;
if(d > 9)
*i++ = d + 'A' - 10;
else
*i++ = d + '0';
} while (value > 0);
*i-- = '\0';
do
{
t = *i;
*i = *s;
*s = t;
--i;
++s;
} while (s < i);
}