void int2dec(int num, char* str) {
int digit = 0, num_start = 0;
char* ptr = str;
if (num < 0) {
*ptr++ = '-';
num *= -1;
num_start = 1;
}
while (num) {
digit = num % 10;
*ptr++ = digit + '0';
num /= 10;
}
*ptr = 0;
reverse(str, num_start, strlen(str) - 1);
}
void int2hex(unsigned int num, char* str) {
char hex_char[16] = {'0', '1', '2', '3', '4',
'5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'};
int digit, cnt = 8;
str[0] = '0';
str[1] = 'x';
while(cnt--) {
digit = num & 0xF;
str[cnt+2] = hex_char[digit];
num >>= 4;
}
str[10] = 0;
}