16 Áø¼ö¿­À» Á¤¼ö·Î º¯È¯ÇÑ´Ù


ÇÔ¼ö¸í
hexsz2int  16 Áø¼ö¿­À» Á¤¼ö·Î º¯È¯ÇÑ´Ù
Çü½Ä
int hexsz2int(char *str);
Àμö
str  16 Áø¼ö ASCIZ ij¸¯ÅÍ ¶óÀÎ
ÇÔ¼öÄ¡
16 Áø¼ö¿­À» ³ªÅ¸³»´Â Á¤¼ö
ÁÖÀÇ »çÇ×
Á¤¼öÀÇ ¿À¹öÇ÷ο쿡 ÁÖÀÇÇÏ´Â °Í.

¿ë·Ê(hexsz2int-test.c )
hexsz2int("B6119");

ÇÁ·Î±×·¥(hexsz2int.c )
int hexsz2int(char *str)
{
    int val;
    int sign;
    
    while (*str == ' ' || *str == '\t') str++;
    sign = 1;
    if (*str == '+') str++;
    else if (*str == '-') {
        sign = -1;
        str++;
    }
    val = 0;
    while (*str >= '0' && *str <= '9' ||
           *str >= 'A' && *str <= 'F' ||
           *str >= 'a' && *str <= 'f') {
        val <<= 4;
        if      (*str >= '0' && *str <= '9') val += *str - '0';
        else if (*str >= 'A' && *str <= 'F') val += *str - 'A' + 10;
        else                                 val += *str - 'a' + 10;
        str++;
    }

    return sign == 1 ?  val : -val;
}
¼³¸í
16 Áø¼ö¿­ÀÇ ¼±µÎ·ÎºÎÅÍ, ¿ì¼± È­ÀÌÆ® ½ºÆäÀ̽º¸¦ ÀÐ¾î ³¯¸°´Ù. ´ÙÀ½¿¡ ºÎÈ£¸¦ ó¸®ÇØ, 16 Áø¼öÀÚÀÇ °¢ ÀÚ¸®¼ö¸¦ º¯È¯ÇØ ³ª°£´Ù. °¢ ÀÚ¸®¼öÀÇ º¯È¯¿¡ ´ëÇؼ­´Â,0-9, A-F, a-f¿Í °°Àº °æ¿ì ºÐ·ù¸¦ °í·ÁÇÑ´Ù.

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