Целое в строку
Раньше и не задумывался о том что преобразование целого числа в строку в десятичном представлении работает почти в три раза медленнее чем в шестнадцатиричном. Забавно. Вот примеры кода:
mcr_inline char *
mcr_str_add_int(char *p, mcr_int_t n)
{
char *s, tmp[20];
s = tmp;
do {
*s++ = n % 10 + '0';
} while (n /= 10);
while (s > tmp) {
*p++ = *--s;
}
*p = '\0';
return p;
}
mcr_inline char *
mcr_str_add_hex(char *p, mcr_int_t n)
{
char *s, tmp[20];
static char hex[] = "0123456789abcdef";
s = tmp;
do {
*s++ = hex[n & 0xf];
} while (n >>= 4);
while (s > tmp) {
*p++ = *--s;
}
*p = '\0';
return p;
}
Tags: оптимизация



Спасибо, интересно было прочитать.
Хм… прикольно!