3 #include <libc/stdlib.h>
5 char base_char[] = "0123456789abcdefghijklmnopqrstuvwxyz";
8 __uitoa_internal(unsigned int value, char* str, int base, unsigned int* size)
16 str[ptr] = base_char[value % base];
21 for (unsigned int i = 0; i < (ptr >> 1); i++) {
23 str[i] = str[ptr - i - 1];
36 __itoa_internal(int value, char* str, int base, unsigned int* size)
38 if (value < 0 && base == 10) {
40 unsigned int _v = (unsigned int)(-value);
41 __uitoa_internal(_v, str + 1, base, size);
43 __uitoa_internal(value, str, base, size);
50 itoa(int value, char* str, int base)
52 return __itoa_internal(value, str, base, NULL);