Á¤¼ö¸¦ 16 Áø¼ö¿­¿¡ º¯È¯ÇÑ´Ù


ÇÔ¼ö¸í
int2hexsz  Á¤¼ö¸¦ 16 Áø¼ö¿­¿¡ º¯È¯ÇÑ´Ù
Çü½Ä
void int2hexsz(char *str, int num);
Àμö
str  (Ãâ·Â) 16 Áø¼ö ASCIZ ij¸¯ÅÍ ¶óÀÎ
num  (ÀÔ·Â) º¯È¯ÇÏ°í ½ÍÀº Á¤¼ö
ÇÔ¼öÄ¡
¾øÀ½
ÁÖÀÇ »çÇ×

¿ë·Ê(int2hexsz-test.c )
char str[15];
int2hexsz(str, 12345)

ÇÁ·Î±×·¥(int2hexsz.c )
void int2hexsz(char *str, int num)
{
    int i;
    static void rint2hexsz();

    i = 0;
    if (num < 0) {
        num = -num;
        *str = '-';
        i++;
    }
    rint2hexsz(str, num, &i);
    *(str + i) = '\0';
}

static void rint2hexsz(char *str, int num, int *off)
{
    int k, n;

    if ((k = num >> 4) ! = 0) rint2hexsz(str, k, off);
    n = num & 0xf;
    *(str + *off) = n <= 9 ?  n + '0' : n - 10 + 'A';
    (*off)++;
}
¼³¸í
Àç±Í¹ýÀ» »ç¿ë. ¼±ÇàÀÇ ¼ýÀÚ¿¡ ´ëÇؼ­´Â ÀÚ±â ÀÚ½ÅÀ» ¼ÒȯÀ̶ó°í ´ëÀÀÇØ, ÃÖÁ¾ÀÚ¸®¼ö¸¸À» º¯È¯ÇØ Ã³¸®ÇÑ´Ù. ±× ¶§, A-F ¿¡ÀÇ º¯È¯¿¡ ÁÖÀÇ ÀÏ.

°ü·Ã ÇÔ¼ö
Á¤¼ö¸¦ 2 Áø¼ö¿­¿¡ º¯È¯ÇÏ´Â, Á¤¼ö¸¦ 10 Áø¼ö¿­¿¡ º¯È¯ÇÏ´Â, 2 Áø¼ö¿­À» Á¤¼ö¿¡ º¯È¯ÇÏ´Â, 10 Áø¼ö¿­À» Á¤¼ö¿¡ º¯È¯ÇÏ´Â, 16 Áø¼ö¿­À» Á¤¼ö¿¡ º¯È¯ÇÑ´Ù